无法读取未定义的属性(读取“执行”)

Cannot read properties of undefined (reading 'execute)

在我的 discord 机器人上,我正在执行一个“昵称”命令。 我的代码在 nickname.js:

const Discord = require("discord.js");
const client = new Discord.Client({ intents: ["GUILDS", "GUILD_MESSAGES"] });
module.exports = {
    name: 'nick',
    description: 'This command with change a users nickname.',
    execute(message, args){
        const memberToEdit = message.mentions.members.first();
        const newNickname = message.content.replace(`${prefix}changenick`, '').split(' ').pop().trim();
        memberToEdit.setNickname(newNickname);
        }
}

我在尝试 运行 命令时遇到的错误:

TypeError: Cannot read properties of undefined (reading 'execute')
    at Client.<anonymous> (C:\Users\Admin\Desktop\DiscordBot\main.js:79:36)
    at Client.emit (node:events:520:28)
    at MessageCreateAction.handle (C:\Users\Admin\Desktop\DiscordBot\node_modules\discord.js\src\client\actions\MessageCreate.js:26:14)
    at Object.module.exports [as MESSAGE_CREATE] (C:\Users\Admin\Desktop\DiscordBot\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
    at WebSocketManager.handlePacket (C:\Users\Admin\Desktop\DiscordBot\node_modules\discord.js\src\client\websocket\WebSocketManager.js:351:31)
    at WebSocketShard.onPacket (C:\Users\Admin\Desktop\DiscordBot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
    at WebSocketShard.onMessage (C:\Users\Admin\Desktop\DiscordBot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10)
    at WebSocket.onMessage (C:\Users\Admin\Desktop\DiscordBot\node_modules\ws\lib\event-target.js:199:18)
    at WebSocket.emit (node:events:520:28)
    at Receiver.receiverOnMessage (C:\Users\Admin\Desktop\DiscordBot\node_modules\ws\lib\websocket.js:1137:20)

Node.js v17.4.0

我的 main.js 文件与其他运行良好的命令相同...

  if(command === 'nick'){
    client.commands.get('nickname').execute(message, args)
  }

我似乎不明白为什么这个命令特别不起作用。

@PLASMA chicken所说,您创建的命令名为 nick,而不是 nickname。因此,将 nickname 更改为 nick 并调用 execute 函数。例如,像这样:

if (command === 'nick') {
    client.commands.get('nick').execute(message, args);
}

希望对您有所帮助!