分组命令后未定义模块

时间:2018-07-11 19:43:27

标签: javascript node.js discord.js

所以我正在做一个不和谐的机器人,并决定将我的命令分组到单独的文件中,例如help.js是一个命令,而ping.js是另一个命令。尽管现在的问题是该命令找不到模块,所以代码给了我一个错误,如:

UnhandledPromiseRejectionWarning: ReferenceError: ms is not defined

即使我在索引文件的顶部定义了它。 (ms是我的静音命令中用来转换时间的模块)

const ms = require(“ms”); 

我用它来获取命令:

   try {
    if (fs.existsSync(`./commands/${command}.js`)) {

    let commandFile = require(`./commands/${command}.js`);

      commandFile.run(client, message, args);
    } else {
      message.reply(`+${command} does not exist`)
    }

这是ping命令,例如:

exports.run = async (client, message, args, level) => { 
  const m = await message.channel.send("Ping?");
  m.edit(`Pong! Latency is ${m.createdTimestamp -message.createdTimestamp}ms. API Latency is ${Math.round(client.ping)}ms`);
}

我已检查是否已安装节点模块。

我的问题是,我做错了什么,为什么要这样做以及如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您需要在每个文件中都需要它,除非您将无法使用它。您也可以导出它,但是仍然需要导入主文件并从那里使用它。