JavaScript、Discord.js、Node.js 类型错误:无法读取未定义的属性“执行”
Posted
技术标签:
【中文标题】JavaScript、Discord.js、Node.js 类型错误:无法读取未定义的属性“执行”【英文标题】:JavaScript,Discord.js, Node.js TypeError: Cannot read property 'execute' of undefined 【发布时间】:2021-04-15 04:56:38 【问题描述】:我正在构建一个不和谐的机器人,我想将信息保存在 bdays.json 中,但弹出此错误。所有其他命令都可以正常工作,但我收到此错误:
TypeError: 无法读取未定义的属性“执行”
我该怎么办?
main.js
const Discord = require('discord.js');
const client = new Discord.Client();
const prefix = '?';
const fs = require('fs');
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);
client.once('ready', () =>
console.log('Bot is online!');
);
client.on('message', message =>
if (!message.content.startsWith(prefix) || message.author.bot) return;
const args = message.content.slice(prefix.length).split(/ +/);
const command = args.shift().toLowerCase();
if (command === 'jsidement')
client.commands.get('ping').execute(message, args);
else if (command === 'help')
client.commands.get('help').execute(message, args, Discord);
else if (command === 'mute')
client.commands.get('mute').execute(message, args);
else if (command === 'unmute')
client.commands.get('unmute').execute(message, args);
else if (command === 'remember')
client.commands.get('remember').execute(message, args);
)
client.login('Token');
记住.js
module.exports =
name: 'remeber',
description: 'this is a remember command!',
execute(message, args)
const fs = require('fs');
client.bdays = require ('./bdays.json');
client.bdays [message.author.username] =
message: message.content
fs.writeFile('./bdays.json', JSON.stringify (client.bdays, null, 4), err =>
if(err) throw err;
message.channel.send('Saved!');
);
我该怎么办?
【问题讨论】:
这是整个remeber.js
文件吗?
是的,我在 youtube 上关注了一个家伙,但他在 main.js
我是 javascript 新手。我只是想让它保存信息
【参考方案1】:
您的代码中有错字...
在remeber.js
中,您将命令名称命名为remeber
,然后在您的main.js
文件中使用client.commands.get('remember').execute(message, args);
要修复它,请使用:
// remember.js
module.exports =
name: 'remember',
description: 'this is a remember command!',
execute(message, args)
const fs = require('fs');
client.bdays = require ('./bdays.json');
client.bdays [message.author.username] =
message: message.content
fs.writeFile('./bdays.json', JSON.stringify (client.bdays, null, 4), err =>
if(err) throw err;
message.channel.send('Saved!');
);
或者用这个代替错字的行:
client.commands.get('remeber').execute(message, args);
【讨论】:
如果对您帮助其他用户有帮助,请将答案标记为正确。以上是关于JavaScript、Discord.js、Node.js 类型错误:无法读取未定义的属性“执行”的主要内容,如果未能解决你的问题,请参考以下文章
异步/等待 Discord.js Node.js Javascript JS
JavaScript、Discord.js、Node.js 类型错误:无法读取未定义的属性“执行”
如何自动更改不和谐机器人的昵称。 (Javascript)(Discord.js)