You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord JS v13 欢迎Embed消息报错RangeError [EMBED_FIELD_NAME]如何解决?

报错原因

你触发的RangeError [EMBED_FIELD_NAME]报错核心是addField方法调用不符合规范:

  • Discord.js的MessageEmbed.addField要求传入至少2个必填参数,第一个为字段标题(必须是非空字符串),第二个为字段内容。你当前仅传入了member.nickname一个参数,若成员未设置群昵称,member.nickname会返回null,直接触发字段名非空校验的报错。
  • 除此之外你的代码还有2处隐性错误,后续运行也会触发报错:
    • member.user.avatarURL是方法不是属性,需要加括号调用才会返回头像链接
    • Discord.js v12及以上版本中,频道获取方法已从channels.get()调整为channels.cache.get()
修复方案
  1. 给addField补全参数,同时对member.nickname做兜底处理,不存在时默认返回用户全局用户名
  2. 修正avatarURL的调用方式,可按需指定头像的格式、尺寸参数
  3. 修正频道获取方法,适配新版Discord.js规范

修复后完整代码

client.on('guildMemberAdd', member => {
    const exampleEmbed = new Discord.MessageEmbed()
        .setColor('#0099ff')
        .setTitle('Willkommen')
        // 补全addField的两个参数,同时做昵称兜底
        .addField('新成员入群', member.nickname || member.user.username)
        // 修正avatarURL调用,可自定义参数
        .setImage(member.user.avatarURL({ format: 'png', size: 1024 }))

    // 修正频道获取方法
    member.guild.channels.cache.get('896102767486189648').send(exampleEmbed);
})

内容的提问来源于stack exchange,提问作者Heubi_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 18:15:04