nodejs - 模块依赖项

时间:2012-10-22 15:40:24

标签: node.js module

假设我有模块A.js和B.js。

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 a 中的B.js始终是空对象 {} node app.js ,如果我直接执行 node B.js ,则会正确初始化。

我期望的是,调用 node app.js 会触发 A.js (需要 B.js )等等,反过来它初始化了自己的 a 变量....但它显然不是这样....

1 个答案:

答案 0 :(得分:2)

你有一个circular module dependency,所以序列如下:

  1. app.js需要A
  2. A需要B
  3. B需要A(尚未完全定义)
  4. 在步骤3中,B在需要时获得A的定义。那时只是一个空对象,这就是aB.js设置的内容。