Discord.JS v13运行报client.on is not a function错误问题求助
报错根因定位
你代码中ready事件的绑定逻辑末尾多了一对多余的立即执行括号(),导致client.on()方法的返回值被当作函数调用,而client.on的返回值本身不是函数,直接触发client.on is not a function报错。
修复步骤
- 找到
ready事件绑定代码的末尾,删除多余的(),修改前的错误代码片段:
client.on("ready", () => { // ready事件内部逻辑省略 })(); // 末尾的()是多余的,直接删除
修改后正确的代码片段:
client.on("ready", () => { // ready事件内部逻辑保留不变 });
- (可选补充修复)你
ready事件内部用于注册斜杠命令的异步自执行函数末尾也缺少调用括号,会导致斜杠命令不会被正常注册,找到对应代码补充括号即可:
(async () => { try { console.log('Started refreshing application (/) commands.'); await rest.put( Routes.applicationGuildCommands(client.user.id, "874809270259052585"), { body: client.commands.map(({ execute, ...data }) => data) }, ); console.log('Successfully reloaded application (/) commands.'); } catch (error) { console.error(error); } })(); // 这里补充缺失的调用括号
其他注意事项
你代码中还存在一处拼写错误:message.channel.send(levelUpMg); 中的levelUpMg应为levelUpMsg,会触发变量未定义报错,后续优化时可同步修正。
内容的提问来源于stack exchange,提问作者user14488588
相关产品推荐
相关产品推荐

