簡體   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