discord.js加载命令时报Invalid string format错误如何排查解决
问题定位
报错和你怀疑的const command = require(${file});语句无关。从错误栈可以直接定位到问题出在/commands/ping.js第5行的.setName()调用,是discord.js斜杠命令名称格式校验不通过触发的。
discord.js对斜杠命令名称的强制校验规则:
- 长度范围1-32字符
- 仅允许使用小写英文字母、数字、下划线、短横线
- 禁止使用大写字母、空格、中文、其他特殊符号,禁止传入空值、空字符串
修复方法
- 打开项目路径下的
commands/ping.js文件,找到第5行的.setName()传参 - 修正传入的命令名称,正误对比如下:
// 错误示例:含大写字母、空格、中文,会触发校验报错 .setName('Ping 测试') // 正确示例 .setName('ping')
- 你贴出的命令文件加载循环代码本身没有问题,修正ping.js里的命令名称后重启项目即可解决报错。
后续新增其他斜杠命令时,所有
.setName()、.setDescription()等字段传参都要符合对应格式要求,否则会触发同类校验错误。
内容的提问来源于stack exchange,提问作者Flash Senko
相关产品推荐
相关产品推荐

