如何将Lavalink错误发送为Discord音乐机器人的频道错误消息?
解决Lavalink错误消息显示undefined的问题
你的代码里错误消息显示undefined,核心原因是错误回调函数没有接收Lavalink传递的error参数。
原来的console.error能正常输出错误,是因为它默认会接收并打印传入的参数;但你写的箭头函数() => {}没有声明参数来捕获这个错误对象,所以直接用${error}时,这个变量根本没定义。
修正后的代码
.on("error", (error) => { if (this.textChannel) { this.textChannel.send( util.embed() .setColor(this.guild.me.displayHexColor) .setDescription(`${error.message || error}`) ); } })
额外说明
- 加上
(error)参数后,就能拿到Lavalink抛出的错误对象了 - 用
error.message可以获取更简洁的错误描述,如果这个属性不存在,再直接显示错误对象本身,避免输出杂乱的对象内容 - 适当添加换行和大括号,让代码结构更清晰,新手更容易维护
内容的提问来源于stack exchange,提问作者mmd
相关产品推荐
相关产品推荐

