繁体   English   中英

Node.js Module.Exports 未定义的空对象

[英]Node.js Module.Exports Undefined Empty Object

我有以下文件。

索引.js

module.exports = {
    "first": require('./1.js'),
    "second": require('./2.js'),
    "third": require('./3.js')
};

1.js

module.exports = "Hello";

2.js

module.exports = "World";

3.js

const utils = require('./');
module.exports = `${utils.first} ${utils.second}`;

运行.js

const utils = require('./');
console.log(utils.first);
console.log(utils.second);
console.log(utils.third);

为什么当我运行node run.js它会打印以下内容?

Hello
World
undefined undefined

我希望它打印

Hello
World
Hello World

这是因为在运行3.js index.js文件还没有完全定义。 为了解决这个问题,您必须专门要求这些文件。 例如,将3.js更改为以下内容即可。

const first = require('./1.js');
const second = require('./2.js');
module.exports = `${first} ${second}`;

只需删除此行:

   "third": require('./3.js')

您不能使index.js依赖于3.js因为3.js依赖于index.js (这称为循环依赖)。 Nodejs 可能能够在某些特定情况下解决它,但我通常不会这样做。 而是将3.js使用的部分从index.js提取到一个新文件中,然后从两者中导入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM