Discord.js配置Slash Commands出现DiscordAPIError[50035]报错排查
故障根因
报错DiscordAPIError[50035]: Invalid Form Body 0.name[BASE_TYPE_REQUIRED]的直接原因是向Discord命令注册接口提交的请求体里没有有效命令结构,从报错日志里的requestBody: { files: undefined, json: [ [Function: toJSON] ] }可以明确看到,你传的命令数组里装的是函数引用,不是序列化后的命令数据对象,接口读取第一个命令的name字段时找不到对应值,直接触发参数校验失败。
问题代码位置
在你的命令处理逻辑中,往命令数组存数据的行写错了:
// 错误写法:仅存储了toJSON方法的引用,没有执行方法拿结果 client.commandArray.push(command.data.toJSON)
修复方案
将该行修改为调用toJSON()方法,拿到实际序列化后的命令对象再存入数组:
// 正确写法:执行toJSON方法获取序列化命令数据 client.commandArray.push(command.data.toJSON())
后续校验建议
- 修改后重启服务,观察命令注册日志是否正常打印
Successfully reloaded application (/) commands. - 逐个检查commands目录下的命令文件,确认每个文件都正确导出了包含
name、description必填字段的data属性,避免因个别命令结构缺失触发同类报错
内容的提问来源于stack exchange,提问作者Personify
相关产品推荐
相关产品推荐

