我一直遇到module.exports问题。
我有 2 个使用Discord.js的脚本,并且我需要有一个两个脚本通用的SetTimeout()变量才能从每个脚本中使用ClearTimeout()。
我尝试使用:
//first script
var foo = 20;
module.exports.foo = foo;
//Second Script
var exp = require('./firstscript');
console.log(exp.foo);
这是一个测试,用一个简单的变量代替我的 SetTimeout(),看看我是否以错误的方式做这件事。
当我使用node命令运行新脚本但在我的 2 个原始脚本上使用npm start时,测试工作正常,它返回“未定义”,同时具有相同的语法。
在每个脚本中已经有一个用于Discord.js事件类的 module.exports,例如“Ready” 。
我在声明const的顶部的主module.exports之外运行这段代码。
我想知道这是否导致了我的问题。
例子:
//the code i'm talking about is here.
module.exports = class ReadyEvent extends BaseEvent {
constructor() {
super('ready');
}
async run(client) {
谢谢你的帮助。
如果需要,请向我澄清。
编辑:
我在互联网上查找是否是脚本中已经存在的 module.export 的问题。确实如此。
显然,如果每个模块都没有指定变量,则脚本中不能有多个module.export :
//this doesn't work
module.exports.value = value;
module.exports = value2;
//this works
module.exports.value = value;
module.exportd.value2 = value2;
我的问题是“discord.js 编译器”使用已经存在的那个来注册每个命令,所以我无法在不破坏机器人的情况下修改它。
我决定将我的计时器放在一个名为 GlobalVars的新脚本中,它运行得非常好。
我很满意它现在可以工作。
对我来说,问题已解决,但我想知道是否可以使用包含的 discord.js module.exports 语法导出变量。