2014-12-02 73 views
0

如何讓需要查看執行腳本的相對路徑(而不是腳本需要執行腳本)?例如:Node.js相對需要執行腳本的路徑

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

你有沒有嘗試使用'./ lib/foo.js'而不是'lib/foo.js'?除此之外,你的代碼沒有任何問題。 – mscdex 2014-12-02 23:43:02

+0

@mscdex:如果我直接在lib文件夾中輸入'node foo.js',那將不起作用。我也需要這樣做。 – apscience 2014-12-02 23:43:35

回答

2

您可以使用__dirname獲得當前執行的腳本所在的絕對目錄,例如:

index.js

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

lib/foo.js

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