Discord机器人请求报错:Expected token to be set问题求助
问题排查:Discord机器人"Expected token to be set"报错
核心原因
你代码中读取环境变量的方式完全错误——你把Discord Token的字符串内容当成了环境变量的键名,而非使用你在环境变量中定义的变量名称。这导致discordToken实际取值为undefined,REST实例未获取到有效Token,触发报错。
看你的代码:
const discordToken = process.env["MTEwMzcxNjY0NzMxNzAxMjQ4MA.GCviE2._V1WKQhWPjsCZJ3EWvy2rmKFKQnTmXnmjqOsw8"];
这行代码试图读取名为MTEwMzcxNjY0NzMxNzAxMjQ4MA.GCviE2._V1WKQhWPjsCZJ3EWvy2rmKFKQnTmXnmjqOsw8的环境变量,但这个变量根本不存在,所以discordToken的值是undefined。
修复步骤
配置正确的环境变量
创建或修改项目根目录下的.env文件,用清晰的变量名存储你的敏感信息:DISCORD_TOKEN=MTEwMzcxNjY0NzMxNzAxMjQ4MA.GCviE2._V1WKQhWPjsCZJ3EWvy2rmKFKQnTmXnmjqOsw8 CHANNEL_ID=1089592410360782908 GUILD_ID=1085245543208464455修改代码读取正确的变量
替换原有的环境变量读取代码:const discordToken = process.env.DISCORD_TOKEN; const channelId = process.env.CHANNEL_ID; const guildId = process.env.GUILD_ID;确保dotenv生效
如果使用本地.env文件,需要安装并加载dotenv包:- 安装:
npm install dotenv - 在代码最顶部添加加载语句:
// CommonJS require('dotenv').config(); // ES模块 import dotenv from 'dotenv'; dotenv.config();
- 安装:
验证方法
在代码中添加一行打印,确认Token是否正确读取:
console.log('Token读取结果:', discordToken);
运行代码后,控制台应该输出你的完整Discord Token,而非undefined。
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

