Discord机器人运行报错:SyntaxError: Unexpected token const 修复求助
Discord机器人启动报错:SyntaxError: Unexpected token const 修复方案
嘿,我来帮你搞定这个问题!结合你的错误提示和代码内容,这里有两个关键问题需要逐一解决:
一、核心错误:Node.js版本不支持ES6语法
你遇到的SyntaxError: Unexpected token const,本质是你的Node.js版本太老旧——const是ES6(ECMAScript 2015)才引入的语法关键字,老版本的Node.js(比如v0.12及更早)完全不支持这个特性,所以会触发语法解析错误。
修复步骤:
- 打开命令提示符,输入
node -v查看当前Node.js版本。如果版本低于v16.x(目前discord.js稳定版要求Node.js 16.9+),直接下载最新的LTS版本安装。 - 安装完成后重启命令提示符,再输入
node -v确认版本已更新,这样ES6语法就能被正常识别了。
二、你的index.js还有隐藏语法错误
你贴出的代码里,机器人登录的那一行存在字符串嵌套问题:
client.login('bot's token');
单引号内部又使用了单引号,会直接导致语法解析失败,必须改成以下两种方式之一:
- 用双引号包裹整个token字符串:
client.login("bot's token");
- 转义字符串内的单引号:
client.login('bot\'s token');
另外,既然你已经用config.json存储token了,更推荐直接从配置文件读取,既安全又方便后续维护,修改后的完整代码可以这样写:
const Discord = require('discord.js'); const config = require('./config.json'); // 引入配置文件 const client = new Discord.Client(); client.once('ready', () => { console.log('Ready!'); }); client.login(config.BOT_TOKEN); // 从配置文件读取token
最后验证
完成以上所有修改后,回到命令提示符重新执行 node index.js,你的机器人应该就能正常输出Ready!,顺利启动了。
内容的提问来源于stack exchange,提问作者crep
相关产品推荐
相关产品推荐

