Javascript 节点-不能在同一文件夹中要求(';/index.js';)
我有一个src/config文件夹,其中有多个文件a.js、b.js、c.js和index.js 当我在b.js里面的时候Javascript 节点-不能在同一文件夹中要求(';/index.js';),javascript,node.js,express,nodejs-server,Javascript,Node.js,Express,Nodejs Server,我有一个src/config文件夹,其中有多个文件a.js、b.js、c.js和index.js 当我在b.js里面的时候 const data = require('./index'); 或 我总是得到一个空的物体,这真的很奇怪 //index.js module.exports = { a: require('./a'), b: require('./b'), c: require('./c') } 我使用这个index.js,它工作得很好 因此,我从中了解到,/index总
const data = require('./index');
或
我总是得到一个空的物体,这真的很奇怪
//index.js
module.exports = {
a: require('./a'),
b: require('./b'),
c: require('./c')
}
我使用这个index.js,它工作得很好
因此,我从中了解到,/index总是返回空对象
有人能解释这一点吗?您的问题来自您的方法,您需要index.js中的b.js,在那里您再次需要b等等 如果您需要在另一个文件中建立索引,它应该按预期工作
app.js
const data = require('src/index');
//data.b.foo = "foo"
您所做的事情会导致循环依赖 首先,节点加载index.js,然后加载a.js、b.js和c.js 加载b.js时,节点加载index.js,其中需要 节点发现index.js正在加载
节点将在b.js中返回一个空对象,以防止循环依赖。因此b需要索引,而索引需要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"
}