2013-11-15 119 views
0

如何從模塊調用模塊? 假設我有兩個模塊,mod_a和mod_b,在一個名爲模塊的目錄中。從其他模塊調用模塊

我想要mod_a與require('./mod_b.js') mod_b,因爲它們位於相同的目錄中。

從父目錄(使用主程序)調用mod_a的缺點是,它被require('modules/mod_a.js');調用,並且找不到內部的mod_b。使用require(__dirname+'./mod_b.js')在mod_a中也沒有幫助。

我知道這是一個非常基本的問題,但我找不到解決方案。

修復:現在一切都很好,這是一個打字錯誤。

回答

1

問題更可能與「主程序」要求mod_amod_a需要mod_b

相對require()路徑是expected to always start with a ./(或../):

無前導'/''./'以指示一個文件,該模塊可以是一個「核心模塊」或從node_modules夾加載。

因此, 「主程序」 應改爲使用:

require('./modules/mod_a.js'); 

然後,mod_a應該能夠使用要求mod_b沒有問題:

require('./mod_b.js'); 
+0

你是對的!我誤解了錯誤信息,我的結論更糟。閱讀慢慢解決了錯誤。 – inselberg

1

__dirname將返回類似/home/user/modules和您連接它與./mod_b.js並獲得/home/user/modules./mod_b.js,但你希望/home/user/modules/mod_b.js

解決方案:

  1. 刪除開始.
  2. 或在開始添加/
  3. 或使用path.join