开发Discord Node机器人时运行node .报错Error [TOKEN_MISSING]
解决Discord.js机器人的TOKEN_MISSING错误
这个错误的核心原因是你的机器人分片管理器(ShardingManager)无法获取到Discord机器人令牌(Token),导致初始化失败。以下是具体解决步骤:
确认令牌来源正确
从Discord开发者门户复制的机器人令牌必须完整,没有多余空格或字符,格式为MTAx...开头的长字符串。检查ShardingManager初始化代码
错误栈显示问题出在ShardingManager.spawn()调用时,必须确保初始化ShardingManager时传入token参数:const { ShardingManager } = require('discord.js'); // 直接传入令牌(不推荐硬编码) const manager = new ShardingManager('./bot.js', { token: '你的机器人令牌' }); // 或者从配置文件读取(推荐) const config = require('./config.json'); const manager = new ShardingManager('./bot.js', { token: config.token }); manager.spawn();使用配置文件存储令牌
创建config.json文件存储令牌,避免硬编码:{ "token": "你的机器人令牌" }然后在主文件中正确导入该配置。
环境变量存储令牌(最佳实践)
通过环境变量传递令牌,更安全且适合部署:
Windows命令行设置:set DISCORD_TOKEN=你的机器人令牌Linux/macOS终端设置:
export DISCORD_TOKEN=你的机器人令牌代码中读取环境变量:
const token = process.env.DISCORD_TOKEN; const manager = new ShardingManager('./bot.js', { token });
内容的提问来源于stack exchange,提问作者rodrigoo09
相关产品推荐
相关产品推荐

