Node.js 在Discord.js中执行命令时,Discord Bot崩溃

Node.js 在Discord.js中执行命令时,Discord Bot崩溃,node.js,discord,discord.js,bots,Node.js,Discord,Discord.js,Bots,我在制造一个不和机器人。现在我添加了命令处理。Bot正常启动,但如果我键入命令,它将显示以下错误代码: C:\Users\Matteo\sudo_\sudocanary\index.js:24 client.commands.get('ping').execute(message, args); ^ TypeError: Cannot read property 'execute' of undefined

我在制造一个不和机器人。现在我添加了命令处理。Bot正常启动,但如果我键入命令,它将显示以下错误代码:

C:\Users\Matteo\sudo_\sudocanary\index.js:24
        client.commands.get('ping').execute(message, args);
                                   ^

TypeError: Cannot read property 'execute' of undefined
    at Client.<anonymous> (C:\Users\Matteo\sudo_\sudocanary\index.js:24:36)
    at Client.emit (events.js:315:20)
    at MessageCreateAction.handle (C:\Users\Matteo\sudo_\sudocanary\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14)
    at Object.module.exports [as MESSAGE_CREATE] (C:\Users\Matteo\sudo_\sudocanary\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
    at WebSocketManager.handlePacket (C:\Users\Matteo\sudo_\sudocanary\node_modules\discord.js\src\client\websocket\WebSocketManager.js:384:31)
    at WebSocketShard.onPacket (C:\Users\Matteo\sudo_\sudocanary\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
    at WebSocketShard.onMessage (C:\Users\Matteo\sudo_\sudocanary\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10)
    at WebSocket.onMessage (C:\Users\Matteo\sudo_\sudocanary\node_modules\ws\lib\event-target.js:132:16)
    at WebSocket.emit (events.js:315:20)
    at Receiver.receiverOnMessage (C:\Users\Matteo\sudo_\sudocanary\node_modules\ws\lib\websocket.js:825:20)

Process finished with exit code 1
现在是ping.js中的代码:

module.exports.execute={
名称:'平',
描述:“Ping!”,
执行(消息){
message.channel.send('Pong');
},
};

谢谢!(我正在使用discord.js v12)

在index.js中,您需要将命令添加到
客户端。命令
才能实际使用它们。您在ping.js中也使用了
module.exports.execute
,而您应该只使用
module.exports
(在
module.exports中已经定义了
execute()
方法,作为方法
execute(message)

下面是代码中的修复程序

index.js:

const client = new Discord.Client();
client.commands = new Discord.Collection();

const commandFiles = fs.readdirSync('./commands/').filter(file => file.endsWith('.js'))
for(const file of commandFiles){
    const command = require(`./commands/${file}`);
    client.commands.set(command.name, command);
}
ping.js:

module.exports = {
    name: 'ping',
    description: 'Ping!',
    execute(message) {
        message.channel.send('Pong.');
    },
};

请更仔细地查看您尝试使用的命令处理程序的示例,因为它们显示了正确的方法,并解释了命令处理程序的每个部分的作用。我建议您仔细检查并学习一切工作原理。

module.exports
而不是
module.exports.execute
。此外,您没有向
client.commands
集合添加任何内容。