node.js - 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);
}
希望你喜欢!
推荐阅读
- laravel - Laravel 7-Carbon 以 UTC 的形式返回
- r - 如何提取每个日期时间戳的频率
- sql - 使用在另一个查询中返回多个的查询
- python - 库 Keras 和 Tensorflow 的退出代码 132
- android - Android Kotlin Retrofit,等待外挂响应
- c# - OnCollisionExit2D 在退出碰撞时未触发
- javascript - 我怎样才能将这个 Datatables 函数返回到 globale 函数中
- android - 如何使用 Mockito 模拟 Hawk 库?
- javascript - CSS 颜色过渡在 Chrome/Edge 83 中无法按预期工作
- node.js - SMPP 服务器 - 如何获取客户端(ESME)的 IP 地址?