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

DiscordJS导入外部Embed字段触发EMBED_FIELD_NAME报错排查

错误诱因

报错由两个叠加的写法问题导致:

  • 模块导入取值错误:fields.js中是将字段数组作为myFields属性挂载到module.exports上导出的,但commandfile.js中直接将require()的返回值整体赋值给myFields,此时myFields是形如{ myFields: [/*字段数组*/] }的导出对象,并非定义的字段数组本身。
  • addFields传参格式错误:addFields方法接收的参数是展开的字段对象、或字段对象组成的一维数组,但代码在拿到错误导入值的基础上,又额外用方括号把myFields包了一层,传入的实际是嵌套结构的二维数组,库解析字段时读取不到合法的非空字符串类型name属性,就会抛出该错误。
修复方案

按顺序修改两处代码即可:

  1. 修正模块导入语句,正确取到导出的字段数组,两种写法二选一:
// 写法1:解构导入
const { myFields } = require('../fields');

// 写法2:取导出对象的myFields属性
const myFields = require('../fields').myFields;
  1. 移除addFields调用时额外包裹的方括号,直接传入本身就是一维数组的myFields,修正后的完整代码如下:
const { myFields } = require('../fields');

const embedTest = new MessageEmbed()
.setColor('#4278f5')
.setTitle('__**MY TITLE**__')
.setThumbnail('mylink.com')
.setDescription(`**something**`)
.addFields(myFields)
.setFooter({text:`my footer`});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 10:24:13