Javascript 检查邀请时,请执行以下操作:

Javascript 检查邀请时,请执行以下操作:,javascript,node.js,message,discord,discord.js,Javascript,Node.js,Message,Discord,Discord.js,如果在打开bot时向服务器创建新的快速邀请,则会发生错误。在其他情况下,它是有效的 const={}; const wait=require('util').promisify(设置超时); client.on('ready',()=>{ 等待(1000); g、 FetchInvests()。然后(Guidinvites=>{ 邀请[g.id]=荷兰盾; }); }); }); client.on('guildMemberAdd',member=>{ 然后(guildInvites=>{ co

如果在打开bot时向服务器创建新的快速邀请,则会发生错误。在其他情况下,它是有效的

const={};
const wait=require('util').promisify(设置超时);
client.on('ready',()=>{
等待(1000);
g、 FetchInvests()。然后(Guidinvites=>{
邀请[g.id]=荷兰盾;
});
});
});
client.on('guildMemberAdd',member=>{
然后(guildInvites=>{
const ei=邀请[member.guild.id];
邀请[member.guild.id]=Guidinvites;
const invite=guildInvites.find(i=>ei.get(i.code).useschannel.name==“加入日志”);
logChannel.send(`${member.user.tag}使用来自${inviter.tag}的邀请代码${invite.code}加入。invite自创建以来使用了${invite.uses}次。`);
});
});
错误:

2019-07-07T09:49:20.363359+00:00应用程序[工人1]:未处理的拒绝:
2019-07-07T09:49:20.363377+00:00应用程序[worker.1]:类型错误:无法读取未定义的属性“uses”
2019-07-07T09:49:20.363378+00:00应用程序[工人1]:在Guidinvites.find.i(/机器人js:398:57)
2019-07-07T09:49:20.363380+00:00应用程序[worker.1]:位于Map.find(./node_modules/discord.js/src/util/Collection.js:160:13)
2019-07-07T09:49:20.363381+00:00应用程序[工人1]:位于member.guild.fetchinvests.then.guildInvites(/bot.js:398:33)
2019-07-07T09:49:20.363382+00:00应用程序[worker.1]:在过程中。点击回调(内部/过程/下一个点击js:68:7)
398截止日期

const invite=guildInvites.find(i=>ei.get(i.code.uses)
使用的invite是新的,尚未在缓存中。但是,
ei.get(i.code).uses假定它是,并在它不存在时尝试使用它的属性

此修订的谓词函数将返回未缓存的invite、或增加使用量的invite

const invite=guildInvites.find(i=>!ei.get(i.code)| ei.get(i.code).uses
我想你应该使用控制台log
I.uses
也许它缺少什么?您不能总是假设对象包含所有字段,如果您最好是控制台日志显示来完成它?你会写代码吗?非常感谢,一切都很好!!但有时会出现错误:TypeError:无法读取null的属性“inviter”。引用自文档。。。“唯一保证的属性是
code
url
guild
channel
。其他属性可能会丢失。”将
inviter
的声明更改为
invite.user | |“未知用户”
。如果已定义,
invite.user
将已经返回一个用户,如果未定义,此代码将把变量声明为字符串“未知用户”