env.PWD vs process.cwd()"/>
process.env.PWD vs process.cwd()
我正在使用Meteor JS ...并且在我的Meteor应用程序中,我正在使用node查询应用程序中不同目录的内容...。
[当我使用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
有何不同?
它们是相关的,但不是同一件事。
process.env.PWD
是进程启动时的工作目录。在整个过程中保持不变。
process.cwd()
是当前工作目录。它反映了通过process.chdir()
所做的更改。
可以操纵PWD
,但这样做毫无意义,该变量没有被使用,只是为了方便而已。
对于计算路径,您可能想要这样:
var path = require('path');
path.resolve(__dirname, 'app/server')
__dirname
反映了定义此代码的源文件所在的目录。期望cwd()
接近该值是错误的。如果您的服务器进程是从主目录以外的任何地方启动的,则使用cwd()
的所有路径都将不正确。
更多推荐
process.env.PWD vs process.cwd()
发布评论