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

问题描述

我在使用 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 时,测试运行良好,它返回' undefined',但具有相同的语法。

在每个脚本中已经有 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 都没有指定变量,则脚本中不能有多个 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');

...如果 firstscript 是一个 json 文件:

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

从文件中提取变量

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