假设我有模块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
变量....但它显然不是这样....
答案 0 :(得分:2)
你有一个circular module dependency,所以序列如下:
app.js
需要A 在步骤3中,B在需要时获得A的定义。那时只是一个空对象,这就是a
中B.js
设置的内容。