节点-不能在同一文件夹中要求('./index.js')

时间:2019-07-28 10:05:31

标签: javascript node.js express nodejs-server

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

在b.js中,我做

JsonMode.SHELL
JsonMode.RELAXED
JsonMode.EXTENDED

OR

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

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

// index.js

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

我正在使用这个index.js,它工作正常。

因此,据此我了解到,要求./index始终返回空对象

有人可以解释吗?

2 个答案:

答案 0 :(得分: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"
}

答案 1 :(得分:0)

您造成的原因循环依赖

首先,节点加载 index.js ,然后加载 a.js b.js c.js

加载 b.js 时,节点将加载其中的 index.js

节点发现正在加载 index.js

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