繁体   English   中英

我无法访问其他脚本中的变量。 (Module.exports 并非在所有地方都有效)

[英]I cannot access the variable in the other script. (Module.exports don't work everywhere)

我一直遇到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 开始,它返回“未定义”,同时具有相同的语法。

在每个脚本中已经是Discord.js事件 class 的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 语法导出变量。

从您的Second Script变量来看,它似乎需要一个文件夹而不是文件,我认为不允许使用文件夹。

假设您需要脚本而不是文件夹:

第一个错误:要求时,括号内必须有引号( "" )或( '' )。

如果是文件夹,在./firstscript旁边加一个/并将其分配给您要引用的文件。

var exp = require('./firstscript/THE_INTENDED_FILE');

...如果firstscriptjson文件:

var exp = require('./firstscript.json');

从文件中提取变量

// Option 1:
console.log(exp.foo);
// Option 2:
const extract = exp.foo
console.log(extract);

暂无
暂无

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

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