Javascript ';无法读取属性';缓存&x27;未定义的';
我已经试着在StackOverflow上搜索它以及如何修复它,但在我的情况下找不到有效的答案 我正在尝试创建我的机器人状态,以显示它所在的每台服务器中有多少用户。比如说,一台服务器有5台,第二台服务器有5台。它会将用户数加在一起,并显示“我在两台服务器上监视10个用户”之类的内容 代码:Javascript ';无法读取属性';缓存&x27;未定义的';,javascript,discord.js,Javascript,Discord.js,我已经试着在StackOverflow上搜索它以及如何修复它,但在我的情况下找不到有效的答案 我正在尝试创建我的机器人状态,以显示它所在的每台服务器中有多少用户。比如说,一台服务器有5台,第二台服务器有5台。它会将用户数加在一起,并显示“我在两台服务器上监视10个用户”之类的内容 代码: bot.guilds.cache.forEach((guild)=>{ guild.members.fetch().then(g=>{ 让计数=0; g、 members.cache.forEach((memb
bot.guilds.cache.forEach((guild)=>{
guild.members.fetch().then(g=>{
让计数=0;
g、 members.cache.forEach((member)=>{@Str8在访问g.members的缓存之前,您需要检查g.members。出现的错误是因为g.members没有成员
bot.guilds.cache.forEach((guild)=>{
guild.members.fetch().then(g=>{
让计数=0;
g?.members?.cache?.forEach((成员)=>{
计数++;
});
控制台日志(计数);
});
});
另外,请检查成员为什么不参加取回呼叫。您可以使用此属性。只需映射公会集合并使用reduce获取summ即可
consttotalmembers=bot.guilds.cache.map(guild=>guild.memberCount).reduce((累加器,currentValue)=>{
返回累加器+当前值
}, 0)
全解
const Discord=require('Discord.js')
const bot=new Discord.Client();
bot.on('ready',()=>{
设置间隔(()=>{
const totalMembers=bot.guilds.cache.map(guild=>guild.memberCount).reduce((累加器,当前值)=>{
返回累加器+当前值
}, 0)
const totalGuilds=bot.guilds.cache.size
setPresence({activity:{name:`${totalMembers}服务器中的${totalGuilds}成员`,键入:'WATCHING'}});
}, 1000 * 60 * 10);
})
这没有回答问题,请分享更多内容。我意识到这是针对discord.js的。我如何过滤掉机器人?我尝试过这样使用过滤器。过滤器(member=>!member.author.bot),但它总是给我“bot未定义”!member.user.bot是的,我的错,这就是我的意思,它说bot未定义。
bot.guilds.cache.forEach((guild) => {
guild.members.fetch().then(g => {
let count = 0;
g.members.cache.forEach((member) => { <--- error occurs here
count++;
});
console.log(count);
});
});