假设我有这个目录结构
/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)中工作,而 require 从被调用的文件(bar.js)中工作,这是正确的吗?
或者我错过了什么?
谢谢
As Dan D.表示,fs.readdir 使用process.cwd()
作为起点,同时require()
uses __dirname
。如果需要,您始终可以从一个路径解析到另一个路径,获得绝对路径,两者都会以相同的方式解释,如下所示:
var path = require('path');
route = path.resolve(process.cwd(), route);
这样,如果使用__dirname
作为起点它将忽略process.cwd()
,否则它将使用它来生成完整路径。
例如,假设process.cwd()
is /home/usr/node/
:
- if
route
is ./directory
,它将成为/home/usr/node/directory
- if
route
is /home/usr/node/directory
,它将保持原样
我希望它对你有用:D
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)