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

Discord.JS机器人本地运行正常 部署Heroku后离线崩溃问题求助

错误根因

核心报错ReferenceError: AbortController is not defined由Node.js运行环境版本不匹配导致:你所使用的Discord.JS v13及以上版本,要求最低Node.js版本为16.6.0,AbortController是Node.js 15.x版本后才内置的全局API,Heroku默认的Node.js版本低于该要求,因此触发未定义错误,进程直接崩溃导致机器人离线。

修复方案
  • 方案1:指定Heroku Node版本(推荐)
    在项目根目录的package.json文件中新增engines字段,明确声明需要的Node.js版本,参考配置如下:
    {
      "name": "你的机器人项目名",
      "version": "1.0.0",
      "engines": {
        "node": "16.x"
      },
      "dependencies": {
        "discord.js": "^13.0.0"
      }
    }
    
    将修改后的package.json提交并重新推送到Heroku,平台会自动匹配对应版本的Node.js运行环境,报错即可解决。
  • 方案2:降级Discord.JS版本(不推荐)
    如果你暂时无法升级Node版本,可以将Discord.JS降级到v12版本,执行本地安装命令npm install discord.js@12后重新部署即可。注意v12与v13版本API存在较大差异,你需要先调整原有代码适配v12的语法规则。
额外检查项

部署完成后确认Heroku后台的dyno配置:关闭web类型dyno,开启worker类型dyno,避免因web进程没有监听端口被Heroku强制回收。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 18:57:02