2012-10-22 212 views
0

假設我有模塊A.js和B.js.nodejs - 模塊依賴關係

A.js

var b = require('./B'); 
[...some code here...] 

B.js

var a = require('./A'); 
[...some code here...] 

比我app.js我有類似:

app.js

var a = require('./A'); 
[some code here] 

的事情是,在var aB.js始終是一個空對象{}當我不喜歡node app.js而如果我直接做node B.js它是正確的初始化

什麼,而不是我所期望的是,調用node app.js它觸發A.js(需要B.js)等,反過來它initialtes自己的a變量....但它是不是這樣顯然....

回答

2

你已經有了一個circular module dependency,所以這個順序是這樣的:

  1. app.js要求甲
  2. A需要乙
  3. B要求A(其尚未完全定義)

在步驟3中,B獲得A的定義在的所需要的時間。這只是一個空的對象,因此aB.js中被設置爲。

+0

yeha,我也這麼認爲...感謝您的鏈接和信息。 – 0m4r