You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署在Heroku上的Discord JS Bot随机崩溃问题求助

解决Discord Bot在Heroku上随机崩溃&命令失效问题

嘿,我仔细看了你的日志和问题描述,其实根源已经很明确啦!

问题核心定位

从崩溃日志里的关键报错就能找到答案:

ReferenceError: guild is not defined

这个错误出现在你的/app/events/guildMemberAdd.js文件第2行,代码是这样的:

const defaultChannel = member.guild.channels.find(channel => channel.permissionsFor(guild.me).has("SEND_MESSAGES"));

这里你用了guild.me,但guild这个变量根本没定义!你要调用的其实是当前成员所在服务器的信息,应该用member.guild来替代未定义的guild变量。

具体修复步骤

把guildMemberAdd.js里的出错代码改成下面两种写法之一就行:

  1. 直接替换变量:
const defaultChannel = member.guild.channels.find(channel => channel.permissionsFor(member.guild.me).has("SEND_MESSAGES"));
  1. 先定义变量让代码更清晰:
const guild = member.guild;
const defaultChannel = guild.channels.find(channel => channel.permissionsFor(guild.me).has("SEND_MESSAGES"));

为什么本地运行没出问题?

你本地测试的时候,大概率没有新成员加入Bot所在的服务器,所以guildMemberAdd这个事件根本没被触发,自然不会暴露这个代码bug。而Heroku上运行时,Bot加入的22个服务器里只要有新成员进群,就会触发这个事件,直接导致Bot崩溃——这就是崩溃时间随机的原因,完全取决于新成员的加入时机。

关于命令失效的解释

你的Bot在Heroku上无法响应命令,本质是因为它频繁崩溃,处于离线/不可用状态,自然没法处理用户的命令请求。修复上面的代码错误后,Bot不再崩溃,命令应该就能正常工作了。

内容的提问来源于stack exchange,提问作者xItsDanger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 05:20:01