Discord Bot初始化失败:config.json报JSON输入意外结束错误求助
问题解决方法
报错核心为 config.json 文件存在语法错误,Node.js 无法正常解析该JSON文件。
排查与修复步骤
- 首先检查本地
config.json的完整内容,确认语法符合规范:- 所有大括号完全配对,不存在遗漏的右闭合符号
- 所有字符串都用英文双引号包裹,不存在单引号或未闭合的引号
- 最后一个键值对末尾没有多余的逗号
- 文件内不存在多余的不可见特殊字符
- 可以直接执行以下命令快速校验JSON合法性:
如果执行后还是报语法错误,逐行核对JSON内容即可定位问题。node -e "const fs = require('fs'); console.log(JSON.parse(fs.readFileSync('./config.json', 'utf-8')))" - 若确认JSON内容正确仍报错,检查文件编码格式,将其改为UTF-8无BOM格式重新保存即可。
额外优化建议
你当前代码中已经引入了dotenv依赖但未使用,更推荐使用.env文件存储敏感凭证,避免JSON语法问题同时安全性更高:
- 删除
config.json文件,在项目根目录新建.env文件,写入内容:
DISCORD_TOKEN=你的真实Discord机器人token
- 修改
index.js代码:
// 放在代码最开头,初始化dotenv require('dotenv').config() const { Client, Intents } = require('discord.js'); // 删掉原来的require config.json那行 const client = new Client({ intents: [Intents.FLAGS.GUILDS] }); client.once('ready', () => { console.log('Ferraribot is online!'); }); // 从环境变量取token client.login(process.env.DISCORD_TOKEN);
后续注意事项
修复JSON语法问题后,记得将config.json里的占位符"token"替换为你在Discord开发者平台获取的真实机器人Token,否则会出现登录授权失败的错误。
内容的提问来源于stack exchange,提问作者KelW
相关产品推荐
相关产品推荐

