假设我有这个目录结构
/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)吗?
或者我错过了什么? 谢谢
答案 0 :(得分:10)
在Dan D.表达时,fs.readdir使用process.cwd()
作为起点,而require()
使用__dirname
。如果你愿意,你总是可以从一个路径解析到另一个路径,获得绝对路径都会以相同的方式解释,如下所示:
var path = require('path');
route = path.resolve(process.cwd(), route);
这样,如果使用__dirname
作为起始点,它将忽略process.cwd()
,否则它将使用它来生成完整路径。
例如,假设process.cwd()
为/home/usr/node/
:
route
为./directory
,则会/home/usr/node/directory
route
为/home/usr/node/directory
,则会保留原样我希望它适合你:D