我不明白为什么会发生这种情况,因为通常控制台中的执行错误是因为文件名与 module.exports 名称不同,但在这种情况下,我真的不知道是什么导致了这个错误(顺便说一句,我删除了选择):
module.exports.run = {
name: 'scavenge',
aliases: ['scv', 'scav'],
description: 'go scavenge for coins',
async execute(message, args, cmd, client, Discord, profileData){
const choices = [];
const choice = choices[Math.floor(Math.random() * choices.length)];
const randomNumber = Math.floor(Math.random() * 1000) + 1;
const response = await profileModel.findOneAndUpdate({
userID: message.author.id,
}, {
$inc: {
Bobux: randomNumber,
}
}
);
return message.channel.send(`You searched in **${choice}** and found **${randomNumber} Bobux**`);
}
}
Console:
TypeError: Cannot read property 'execute' of undefined
答案 0 :(得分:1)
它应该是 module.exports =
而不是 module.exports.run =
:
module.exports = {
name: 'scavenge',
aliases: ['scv', 'scav'],
description: 'go scavenge for coins',
async execute(message, args, cmd, client, Discord, profileData){
// ...
}
}
答案 1 :(得分:0)
您面临的问题是复制和粘贴代码(最有可能),这主要是由于您没有完全理解代码造成的。
当您使用 commandfile.execute 时,您不能使用 module.exports.run
因此,您必须替换:
module.exports.run = {
与:
module.exports.execute = {
在导出 .run 时,您的 index.js 文件需要 .execute!
如果您需要更多帮助,请发表评论。
答案 2 :(得分:0)
看到您将命令文件导出为 javascript object
,而您的错误意味着 execute
属性在命令文件对象中不存在。它应该是module.exports =
而不是module.exports.run =
,所以修复是
module.exports = {
name: 'scavenge',
aliases: ['scv', 'scav'],
description: 'go scavenge for coins',
execute: async (message, args, cmd, client, Discord, profileData) => { // defining execute property
// do your command code here
}
}