Discord Bot v14代码报错:TypeError: Cannot read properties of undefined (reading 'get')
Discord.js v14 TypeError 修复方案
错误原因分析
报错TypeError: Cannot read properties of undefined (reading 'get')来自代码中这一段的逻辑错误:
let ap_user = interaction.guild.members.cache.then( embed.footer.get(client.user.tag) );
存在两个核心问题:
interaction.guild.members.cache是Collection对象,不是Promise,不能使用.then()方法。embed.footer返回的是EmbedFooter结构(或undefined),它没有.get()方法——你混淆了Collection的get()方法用法。
修复后的代码
如果你的需求是获取机器人自身在服务器中的成员对象,正确写法如下:
{ let embed = new EmbedBuilder(interaction.message.embeds[0]) .setColor(0x00FF00) .setFooter({ text: client.user.tag }); interaction.message.edit({ embeds: [embed], components: [], }); // 直接从members.cache通过ID获取机器人成员对象 let ap_user = interaction.guild.members.cache.get(client.user.id); }
额外说明
- 若要确保
ap_user存在(避免缓存未加载的情况),可以改用fetch()方法:
注意:使用let ap_user = await interaction.guild.members.fetch(client.user.id);await需要将外层函数标记为async。
内容的提问来源于stack exchange,提问作者Harshita
相关产品推荐
相关产品推荐

