我在我的Meteor应用程序中使用Meteor JS...and,我使用节点来查询应用程序中不同目录的内容.
当我使用process.env.PWD查询文件夹的内容时,我得到的结果与使用process.cwd()查询文件夹的结果不同。
var dirServer = process.env.PWD + '/server/';
var dirServerFiles = fs.readdirSync(dirServer);
console.log(dirServerFiles);
//outputs: [ 'ephe', 'fixstars.cat', 'sepl_30.se1', 'server.js' ]vs
var serverFolderFilesDir = process.cwd() +"/app/server";
var serverFolderFiles = fs.readdirSync(serverFolderFilesDir);
console.log(serverFolderFiles);
//outputs: [ 'server.js' ]使用process.cwd()只显示流星中的server.js。
为什么会这样呢?process.cwd()和process.env.PWD有什么不同?
发布于 2015-07-15 16:50:39
他们是亲戚,但不是同一件事。
process.env.PWD是进程启动时的工作目录。这在整个过程中保持不变。
process.cwd()是当前的工作目录。它反映了通过process.chdir()所做的更改。
操作PWD是可能的,但这样做将毫无意义,任何东西都不使用该变量,它只是为了方便。
对于计算路径,您可能希望这样做:
var path = require('path');
path.resolve(__dirname, 'app/server')其中__dirname反映了这个代码所定义的源文件所在的目录。预期cwd()将接近这一点是错误的。如果您的服务器进程是从任何地方启动的,但是您的主源目录使用cwd()时,您的所有路径都是不正确的。
https://stackoverflow.com/questions/31414852
复制相似问题