【问题标题】:JavaScript,Discord.js, Node.js TypeError: Cannot read property 'execute' of undefinedJavaScript、Discord.js、Node.js 类型错误:无法读取未定义的属性“执行”
【发布时间】: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 新手。我只是想让它保存信息

标签: javascript node.js discord.js


【解决方案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);

【讨论】:

  • 如果对您帮助其他用户有帮助,请将答案标记为正确。
猜你喜欢
  • 2021-02-16
  • 2020-12-01
  • 1970-01-01
  • 2021-07-27
  • 2017-07-06
  • 1970-01-01
  • 2023-02-23
  • 2021-07-03
  • 2021-04-30
相关资源
最近更新 更多