node.js - 无法读取未定义的属性“邀请者”
问题描述
我收到一个Cannot read the property 'inviter' of undefined
错误,我不太清楚为什么。这是我的代码:
Client.on('guildMemberAdd', async (member) => {
const cachedInvites = GuildInvites.get(member.guild.id);
const nweInvites = await member.guild.fetchInvites();
GuildInvites.set(member.guild.id, nweInvites);
try {
const usedInvites = nweInvites.find(
(inv) => cachedInvites.get(inv.code) < inv.uses
);
const embed = new Discord.MessageEmbed()
.setDescription(
`${member.user.tag} is the ${member.guild.memberCount}th member. \nInvited by ${usedInvites.inviter.username} \nNumber of uses: ${usedInvites.uses}`
)
.setTimestamp()
.setColor('YELLOW');
const WelcomeChannel = member.guild.channels.cache.find(
(channel) => channel.id === '704908658068422698'
);
WelcomeChannel.send(embed).catch((err) => {
console.log(err);
});
} catch (err) {
console.log(err);
}
});
Client.login();
我正在尝试创建一个邀请经理机器人。任何帮助将不胜感激,谢谢!
解决方案
您可以做的是通过保护您的代码来管理这种情况。
try {
const usedInvites = nweInvites.find(
(inv) => cachedInvites.get(inv.code) < inv.uses
);
if (!usedInvites) {
return;
}
const embed = new Discord.MessageEmbed()
.setDescription(
`${member.user.tag} is the ${member.guild.memberCount}th member. \nInvited by ${usedInvites.inviter.username} \nNumber of uses: ${usedInvites.uses}`
)
.setTimestamp()
.setColor('YELLOW');
const WelcomeChannel = member.guild.channels.cache.find(
(channel) => channel.id === '704908658068422698'
);
WelcomeChannel.send(embed).catch((err) => {
console.log(err);
});
}
我补充说:if (!usedInvites) return;
但你可以做任何你需要的动作。
推荐阅读
- android - 如何为 Android 26+ 实现强大的闹钟应用程序
- c# - XML序列化没有得到预期的xml文件c#
- python - 打开 cx_Freeze 编译的 Python 应用程序时出现错误“没有名为 '_cffi_backend' 的模块”
- python - 当使用维基百科的 API 的 .random() 函数时,为什么我得到的页面越多,重复页面的数量就越多?
- python - 用 Python 抓取 LinkedIn
- reactjs - 子组件即使其父组件也没有渲染
- c# - 在多目标 Visual Studio .csproj 构建之前更新资源
- python - 如何在 Ubuntu 服务器上查找循环 python 脚本
- python - 仅使用 IF 和 else 而不使用其他技术来循环 2 -d 数组
- php - phpexcel图表文件在输出到浏览器时损坏