NodeJS readdir并要求相对path

比方说,我有这个目录结构

/Project /node_modules /SomeModule bar.js /config /file.json foo.js 

 foo.js: require('bar'); 

 bar.js: fs.readdir('./config'); // returns ['file.json'] var file = require('../../../config/file.json'); 

readdir是否被包含在文件(foo.js)中,是否需要从被调用的文件(bar.js)中读取?

还是我错过了什么? 谢谢

正如Dan D.所expression的,fs.readdir使用process.cwd()作为开始点,而require()使用__dirname 。 如果你愿意的话,你总是可以从一条path走向另一条path,得到一条绝对path都会以同样的方式解释,如下所示:

 var path = require('path'); route = path.resolve(process.cwd(), route); 

这样,如果使用__dirname作为起点,它将忽略process.cwd(),否则它将使用它来生成完整path

 asume process.cwd() == '/home/usr/node/' if route == './directory' it would become '/home/usr/node/directory' if route == '/home/usr/node/directory' it will be left as is 

我希望它适合你:D