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命令模板

如何自动更改不和谐机器人的昵称。 (Javascript)(Discord.js)

说消息只给我一个短语的第一个单词,JavaScript - Discord.js

使用 discord.js/javascript 请求文件、读取内容并将内容发送到频道?