Discord.js TypeError:无法读取未定义的属性“缓存”

Posted

技术标签:

【中文标题】Discord.js TypeError:无法读取未定义的属性“缓存”【英文标题】:Discord.js TypeError: Cannot read property 'cache' of undefined 【发布时间】:2021-02-27 05:03:02 【问题描述】:

首先对不起我的英语, 我正在开发一个 Discord 机器人,但我遇到了一些问题,每当我在聊天中写任何单词时,我都会看到很多错误。谁能帮我?谢谢你。 这是我的代码;

const Discord = require('discord.js');
const client = new Discord.Client();
var set = require('./settings.json');

client.once('ready', () => 
   console.log('Ready!');
   client.user.setActivity ("Deneme");
);


client.on('message', message => 

const role = client.roles.cache.find(role => role.name === 'Pascal');
const member = message.mentions.members.first();
member.roles.add(role);

if (message.content === 'Hi') 

    message.channel.send('Hi!');

);

client.login(set.token);

这就是我在终端上的错误代码;

Visual Studio Code terminal

【问题讨论】:

client 没有 roles 属性。您需要找出原因。 client改成message就可以了。 我确实像这样编辑过 const role = message.roles.cache.find(role => role.name === 'Pascal');但还是一样 哦,我的错,也加入一个公会。 message.guild.roles.cache.find @WorthyAlpaca 它工作正常,但我像往常一样有新错误member.roles.add(role); ^ TypeError: Cannot read property 'roles' of undefined 我经常将其视为“未定义”。我一般如何解决这个问题。你有资料吗? 【参考方案1】:

别这样

const role = client.roles.cache.find(role => role.name === 'Pascal');

试试这个代码

const role = message.guild.roles.cache.find((role) => role.name === rolename);

关于会员的其他错误,请使用以下代码初始化会员。

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

【讨论】:

以上是关于Discord.js TypeError:无法读取未定义的属性“缓存”的主要内容,如果未能解决你的问题,请参考以下文章

TypeError:无法读取未定义的“获取”函数(discord.js)

Discord.js:TypeError:无法读取未定义的属性“删除”

(Discord.js)TypeError:无法读取未定义的属性“添加”

Discord.js:TypeError:无法读取未定义的属性“get”

discord.js TypeError:无法读取未定义的属性“发送”

node.js/discord.js:TypeError:无法读取 null 的属性“setPresence”