Javascript &引用;无法读取属性';角色';“未定义”的定义;当没有提供参数时

Javascript &引用;无法读取属性';角色';“未定义”的定义;当没有提供参数时,javascript,node.js,discord,discord.js,Javascript,Node.js,Discord,Discord.js,我有此代码,可以在用户键入?stream 在输入整个命令时,它工作正常,但仅当?stream if (!member.roles.cache.some(role => role.name === 'streaming')) { ^ TypeError: Cannot read property 'roles' of undefined 我不知道为什么 代码如下: client.on('message', message => {

我有此代码,可以在用户键入
?stream
在输入整个命令时,它工作正常,但仅当
?stream

if (!member.roles.cache.some(role => role.name === 'streaming')) {
                        ^

TypeError: Cannot read property 'roles' of undefined
我不知道为什么

代码如下:

client.on('message', message => {
    if (!message.content.startsWith(prefix) || message.author.bot) return;

    const args = message.content.slice(prefix.length).trim().split(' ');
    const command = args.shift().toLowerCase();
    const member = message.mentions.members.first();

    if (command === 'stream') { 
        if(message.member.permissions.has("MANAGE_ROLES")){
            if (!member.roles.cache.some(role => role.name === 'streaming')) {


                member.roles.add('744292301874135122')
                message.channel.send('`Added streaming role.`')
            } else 
                member.roles.remove('744292301874135122') && message.channel.send('`Removed streaming role.`')
            
        } else message.channel.send('`You dont have permission.`')
    }
});


Discord.js无法获取您在此方法中定义的成员:

const member = message.mentions.members.first();

因为当您只键入
?stream
时,没有提及。因此,discord.js无法获取成员的角色,因为该成员未定义。

什么是
member.roles.cache
?在
member.roles.cache.some
中,您的成员未定义。调试此行
const命令=args.shift().toLowerCase()错误告诉您成员未定义,因此
message.indications.members.first()返回未定义的。