Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ';无法读取属性';缓存&x27;未定义的';_Javascript_Discord.js - Fatal编程技术网

Javascript ';无法读取属性';缓存&x27;未定义的';

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

我已经试着在StackOverflow上搜索它以及如何修复它,但在我的情况下找不到有效的答案

我正在尝试创建我的机器人状态,以显示它所在的每台服务器中有多少用户。比如说,一台服务器有5台,第二台服务器有5台。它会将用户数加在一起,并显示“我在两台服务器上监视10个用户”之类的内容

代码:

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);
              });
            });