javascript – process.env.PWD vs process.cwd()

前端之家收集整理的这篇文章主要介绍了javascript – process.env.PWD vs process.cwd()前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用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' ]

VS

var serverFolderFilesDir = process.cwd() +"/app/server";
var serverFolderFiles = fs.readdirSync(serverFolderFilesDir);
console.log(serverFolderFiles); //outputs: [ 'server.js' ]

使用process.cwd()只显示Meteor中的’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()会使您的所有路径都不正确.

猜你在找的JavaScript相关文章