命令分组时未定义的模块

Undefined module when commands are grouped

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

UnhandledPromiseRejectionWarning: ReferenceError: ms is not defined

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

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`);
}

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

我的问题是,我做错了什么,为什么会这样,我该怎么做才能解决这个问题?

你需要在你拥有的每个文件中都需要它,除非它对你不可用。您也可以导出它,但您仍然需要导入主文件并从那里使用它。