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

Discord.js EmbedBuilder.addFields报ExpectedConstraintError错误的解决方法

修复Discord.js中EmbedBuilder.addFields的ExpectedConstraintError错误

错误信息

ExpectedConstraintError: Invalid number value
    at Object.run (/home/runner/project/node_modules/@sapphire/shapeshift/dist/index.js:702:72)
    at /home/runner/project/node_modules/@sapphire/shapeshift/dist/index.js:113:66
    at Array.reduce (<anonymous>)
    at NumberValidator.parse (/home/runner/project/node_modules/@sapphire/shapeshift/dist/index.js:113:29)
    at validateFieldLength (/home/runner/project/node_modules/@discordjs/builders/dist/index.js:133:24)
    at EmbedBuilder.addFields (/home/runner/project/node_modules/@discordjs/builders/dist/index.js:243:5)
    at /home/runner/project/prefixCommands/viewBoard.js:22:18 {
  constraint: 's.number.lessThanOrEqual',
  given: NaN,
  expected: 'expected <= 25'
}

问题根源

错误核心是addFields方法的调用语法出错,导致Discord.js无法正确解析要添加的字段数量,最终validateFieldLength函数收到的amountAdding参数为NaN,触发数值验证失败。你的代码存在两处明显问题:

  1. 调用addFields时误用大括号{}包裹参数,而非方法要求的小括号(),属于语法错误。
  2. 字段对象格式异常:比如重复定义value键({value:"there is nothing here",value:"/u200b"}),会导致对象属性被覆盖,破坏字段结构。

修复方案

1. 修正addFields调用语法

addFields是类方法,必须用小括号()包裹参数,不能用大括号{}。

2. 规范字段对象格式

每个字段对象必须包含name和value属性,禁止重复定义同一键名,可选添加inline属性控制是否行内显示。

3. 正确传递字段参数

addFields支持两种传参方式:

  • 单个字段对象
  • 多个字段对象组成的数组

正确代码示例

client.on(Events.ClientReady, async () => {
    const embed = new Discord.EmbedBuilder()
        // 添加单个字段
        .addFields({ 
            name: 'Inline field title', 
            value: 'Some value here', 
            inline: true 
        })
        // 批量添加多个字段(数组包裹)
        .addFields([
            { name: '空占位字段', value: '\u200b' }, // 零宽空格写法为\u200b,注意转义符
            { name: '常规字段', value: '这里是字段内容' }
        ]);
});

额外注意事项

  • 零宽空格的正确写法是\u200b,不是/u200b,否则会被识别为普通文本。
  • Discord Embed最多支持25个字段,即使语法正确,超过数量也会触发类似的验证错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 07:30:57