TypeError:无法读取null的属性“ avatarURL”尝试导出帮助命令

时间:2019-11-16 06:00:07

标签: node.js discord.js

我一直在清理我的index.js文件,并决定我希望将help命令放在更实际的位置。唯一的问题:在页脚中有机器人的化身,但它带有TypeError: Cannot read property 'avatarURL' of null

//code in help.js
const Discord = require('discord.js');
const client = new Discord.Client();
var version = process.env.VERSION;

module.exports = {
    name: 'help',
    execute(message, args){
        const Discord = require('discord.js');

        const helpcommands = new Discord.RichEmbed()
        .setTitle('Akasuki Command List')
        .addField('Info Commands', 'userinfo, version, ping, invite, avatar')
        .addField('Moderation Commands', 'kick, ban, clear')
        .addField('Fun Commands', 'samwise, say')
        .setColor(0xFF8AFF)
        .setFooter(`Akasuki ${version}`, client.user.avatarURL)
        message.channel.send(helpcommands);
    }
}
//code in index.js
if (command === 'help') {
    client.commands.get('help').execute(message, args);
}

我还想知道是否有一种方法可以一次导出多个命令,还是必须一次一个地导出所有命令?

如果有人可以帮助我解决此错误,我将非常感谢<3感谢您检查此错误。

1 个答案:

答案 0 :(得分:0)

  

我一直在清理我的index.js文件,并决定我希望将help命令放在更实际的位置。唯一的问题:在页脚中有机器人的头像,但出现TypeError:无法读取null的属性'avatarURL'

错误TypeError: Cannot read property 'avatarURL' of null已清除。就是说,您正在尝试访问null的对象的属性。

要调试此错误,您可以尝试记录有关对象:console.log(client.user);如果出现null,可能是由于未使用Discord.js客户端登录。

根据您的代码,您似乎尚未登录Discord.js的Client实例。我建议您检出login方法,这是您要用来登录Discord的方法。您想先登录Discord,然后再访问客户的用户属性。

另外,要查看或创建您的机器人应用程序,visit your Discord applications

  

我还想知道是否有一种方法可以一次导出多个命令,还是必须一次一个地导出所有命令?

导出乘法命令的简单方法是使用数组。您可以像这样定义和导出多个命令:

module.exports = [
    {
        // command 1 ...
    },
    {
        // command 2 ...
    ]
];

然后您可以使用循环访问它们。