所以我正在做一个不和谐的机器人,并决定将我的命令分组到单独的文件中,例如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`);
}
我已检查是否已安装节点模块。
我的问题是,我做错了什么,为什么要这样做以及如何解决这个问题?
答案 0 :(得分:0)
您需要在每个文件中都需要它,除非您将无法使用它。您也可以导出它,但是仍然需要导入主文件并从那里使用它。