Discord Bot无法上线,调用client.login()报AbortController未定义错误
Discord Bot触发AbortController未定义报错无法上线问题解决
相关代码
require("dotenv").config(); const { Client, Intents } = require("discord.js"); const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES], }); client.on("ready", () => { console.log("bot is ready"); }); client.login(process.env.DISCORD_BOT_TOKEN).catch((e) => { console.log(e); });
报错信息
HTTPError [ReferenceError]: AbortController is not defined at RequestHandler.execute (g:\goofy-translator\node_modules\discord.js\src\rest\RequestHandler.js:172:15) at RequestHandler.execute (g:\goofy-translator\node_modules\discord.js\src\rest\RequestHandler.js:176:19) at RequestHandler.push (g:\goofy-translator\node_modules\discord.js\src\rest\RequestHandler.js:50:25) at async WebSocketManager.connect (g:\goofy-translator\node_modules\discord.js\src\client\websocket\WebSocketManager.js:128:9) at async Client.login (g:\goofy-translator\node_modules\discord.js\src\client\Client.js:245:7) { code: 500, method: 'get', path: '/gateway/bot', requestData: { json: undefined, files: [] } }
排查过程
- 报错由
client.login()方法触发 - 已三次核对机器人token,确认token正确
- 排除环境变量读取问题,直接传入token依然无法运行
根因与解决方法
- 根因:Node.js运行环境版本过低,discord.js库最低要求v16版本的Node.js运行环境,
AbortController是高版本Node.js才内置的全局API,低版本环境不存在该变量因此触发引用错误。 - 解决方法:将本地Node.js版本升级至v16或更高版本即可解决该问题。
内容的提问来源于stack exchange,提问作者Filipe Coutinho
相关产品推荐
相关产品推荐

