discord.js运行登录代码报AbortController未定义错误如何解决?
报错根因
你遇到的ReferenceError: AbortController is not defined报错是Node.js版本与discord.js版本不兼容导致:
- 新版discord.js依赖的
AbortControllerAPI是Node.js 16.x之后才内置到全局环境的,低于该版本的Node.js运行环境没有原生提供这个API,就会触发该引用错误,后续的500请求错误也是该兼容性问题引发的连锁报错。
修复方案
推荐方案(彻底解决兼容性问题)
- 第一步:执行命令
node -v查看当前本地Node.js版本号 - 第二步:根据你使用的discord.js版本升级Node.js:
- 若使用discord.js v14,需要将Node.js升级到16.9.0及以上版本
- 若使用discord.js v13,需要将Node.js升级到16.6.0及以上版本
- 第三步:删除项目根目录下的
node_modules文件夹和package-lock.json文件,重新执行npm install安装依赖 - 第四步:重新运行机器人代码验证即可
临时兼容方案(暂无法升级Node.js时使用)
如果暂时无法升级Node.js版本,可以通过引入polyfill临时兼容:
- 执行命令安装polyfill包:
npm install abort-controller
- 在你的代码最顶部添加如下引入代码:
global.AbortController = require("abort-controller");
注意该方案只是临时兼容,后续还是建议升级Node.js版本,避免出现其他未知兼容性问题。
内容的提问来源于stack exchange,提问作者G0meru
相关产品推荐
相关产品推荐

