0

我有一个文件夹 src/config,其中有多个文件 a.js、b.js、c.js 和 index.js

当我在 b.js 里面时

const data = require('./index');

或者

const data = require('./index.js');

我总是得到一个空的物体,这真的很奇怪

// index.js

module.exports = {
  a: require('./a'),
  b: require('./b'),
  c: require('./c')
}

我正在使用这个 index.js,它工作得很好。

所以,我从中了解到的是要求 ./index 总是返回空对象

谁能解释一下?

4

2 回答 2

1

您的问题来自您的方法,您在 index.js 中需要 b.js,而您又需要 b 等等。

如果您需要其他文件中的索引,它应该按预期工作。

app.js

const data = require('src/index');
//data.b.foo = "foo"
src/index.js

module.exports = {
    a: require('./a'),
    b: require('./b'),
    c: require('./c')
  }
src/b.js

module.exports = {
    foo:"foo"
}
于 2019-07-28T10:21:07.593 回答
0

你所做的会导致循环依赖

首先,node 加载index.js然后加载a.jsb.jsc.js

加载b.js时,节点加载index.js 中需要的。

节点发现index.js正在加载。

node 将在b.js中返回一个空对象,以防止循环依赖。

于 2019-07-29T02:03:16.653 回答