Node.js相对需要执行脚本的路径

时间:2014-12-02 23:39:37

标签: javascript node.js

如何让require查看执行脚本的相对路径(而不是脚本对执行脚本的要求)?例如:

index.js

require('lib/foo.js');

-

LIB / foo.js

var barFunction = require('./bar.js').barFunction;
barFunction();

-

LIB / bar.js

module.exports.barFunction = function(){
    return true;
}

当你node index.js时,foo.js会查找bar.js而不是lib / bar.js。

如果将foo.js修改为require('lib/bar.js'),则node foo.js将停止工作。

如何以node index.jsnode lib/foo.js的方式设置需求,然后两者都有效?

1 个答案:

答案 0 :(得分:2)

您可以使用__dirname获取当前正在执行的脚本所在的绝对目录。例如:

index.js

require(__dirname + '/lib/foo.js');

lib/foo.js

var barFunction = require(__dirname + '/bar.js').barFunction;
barFunction();