pre*_*ton 7 javascript fs node.js meteor
我正在使用Meteor JS ...并且在我的Meteor应用程序中我使用节点来查询应用程序内不同目录的内容....
当我使用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' ]
Run Code Online (Sandbox Code Playgroud)
VS
var serverFolderFilesDir = process.cwd() +"/app/server";
var serverFolderFiles = fs.readdirSync(serverFolderFilesDir);
console.log(serverFolderFiles); //outputs: [ 'server.js' ]
Run Code Online (Sandbox Code Playgroud)
使用process.cwd()只显示Meteor中的'server.js'.
为什么是这样?process.cwd()与process.env.PWD有什么不同?
tad*_*man 15
他们是相关但不是一回事.
process.env.PWD
是进程启动时的工作目录.这在整个过程中保持不变.
process.cwd()
是当前的工作目录.它反映了通过改变process.chdir()
.
它可以操纵,PWD
但这样做是没有意义的,变量不被任何东西使用,它只是为了方便.
对于计算路径,您可能希望这样做:
var path = require('path');
path.resolve(__dirname, 'app/server')
Run Code Online (Sandbox Code Playgroud)
其中__dirname
反映了此代码在驻留中定义的源文件的目录.期望它cwd()
会在任何地方附近是错误的.如果您的服务器进程是从任何地方启动的,但主源目录中的所有路径都将使用不正确cwd()
.
归档时间: |
|
查看次数: |
15723 次 |
最近记录: |