gpt4 book ai didi

javascript - 在循环依赖NodeJS中访问module.exports不存在的属性

转载 作者:行者123 更新时间:2023-12-05 00:35:25 24 4
gpt4 key购买 nike

我在 NodeJS 中使用 module.exports 时遇到了一些问题,我遵循了多个指南,我几乎可以肯定我做得对。
我必须编写脚本、main.js 和 event.js。我试图从 main.js 共享一个函数到 event.js,但它不起作用。这是代码:
主.js

function Scan(){
if(fs.readdirSync('./events/').length === 0){
console.log(colors.yellow('Events Folder Empty, Skipping Scan'))
} else {
var events = fs.readdirSync('./events/').filter(file => file.endsWith('.json'))
for(const file of events){
let rawdata = fs.readFileSync('./events/' + file);
let cJSON = JSON.parse(rawdata);
}
events.sort()
tevent = events[0]
StartAlerter()
}
}

module.exports = { Scan };
事件.js
const main = require('../main')

main.Scan;
这将返回错误:
(node:19292) Warning: Accessing non-existent property 'Scan' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
我究竟做错了什么?

最佳答案

问题解决了,这是我做的不同:

module.exports = { Scan };
已声明 之前 定义了 Scan 函数,如下所示:
module.exports = { Scan };
function Scan(){
//Code
}
然后在 event.js 中,我写了
const main = require('../main')
因为它现在是一个模块,并且可以与 require() 函数一起使用。
然后在 event.js 中执行函数,我写
main.Scan()
执行它。

关于javascript - 在循环依赖NodeJS中访问module.exports不存在的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67477093/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com