discord.js TypeError“无法读取未定义的属性‘执行’”

问题描述

我得到“无法读取未定义的属性‘执行’”

这是 index.js 文件中的命令

const discord = require("discord.js")
const client = new discord.Client()
const config = require("./config.json")
const fs = require("fs")
client.commands = new discord.Collection();
const commandFiles = fs.readdirsync('./cmds/').filter(file => file.endsWith('.js'));
for(const file of commandFiles){
    const command = require(`./cmds/${file}`)

    client.commands.set(command.name,command)
}
//client.on//
client.on('ready',() =>{
    console.log("The client is ready!")
})
let prefix = config.prefix;
client.on("message",(message) => {
  if(message.author.bot) return;
  if (!message.content.startsWith(prefix)) return;

  const args = message.content.slice(prefix.length).trim().split(/ +/g);
  const command = args.shift().toLowerCase();

  if(command === 'pnig') {
        client.commands.get('ping').execute(message,args);
  }
});
client.login(config.token)

这是 ping.js 上的那个

const discord = require("discord.js")
module.exports = {
    name: 'ping',description: 'pong?',execute(message,args) {
        message.channel.send('pong!')
    }
}

你能告诉我我的代码有什么问题吗?

解决方法

您的代码的错误实际上是拼写错误。你看,你把 pnig 而不是 ping 这使得异常处理说 .execute 没有定义。

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

对此的简单修复如下:

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

希望你喜欢!

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...