Discord.js注册事件监听报ERR_INVALID_ARG_TYPE错误如何解决?
问题解决方案
错误原因
- 你为
reqEvent函数添加了不必要的async修饰符:所有async函数执行后都会返回Promise实例,而client.on方法要求传入的第二个参数是事件回调函数,类型不匹配直接触发了本次的类型错误。 - 消息事件的监听逻辑存在写法问题:你仅执行了事件处理函数的导入操作,既没有执行导入得到的处理函数,也没有透传事件触发时的消息对象参数。同时如果你的Discord.js版本为v13及以上,旧的
message事件已被官方废弃,需要替换为messageCreate事件才能正常触发消息相关逻辑。
修复后的代码
eventHandler.js
const reqEvent = (event) => require(`../events/${event}`); module.exports = (client) => { client.on("ready", () => reqEvent("ready")(client)); client.on("messageCreate", (message) => reqEvent("message")(client, message)); };
额外检查项
- 确认你的
events/message.js文件导出的是可执行函数,参数顺序和调用时传入的client、message顺序一致 - 你当前的意图配置已经包含
GUILD_MESSAGES,满足消息事件的触发权限要求,无需调整客户端初始化配置
内容的提问来源于stack exchange,提问作者Yupe452
相关产品推荐
相关产品推荐

