You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord审核机器人出现SyntaxError: Unexpected token 'const'错误的技术求助

解决Discord机器人中的SyntaxError: Unexpected token 'const'问题

看起来这个语法错误是代码解析阶段的问题,不是运行时错误,意味着你的代码结构存在语法不规范或者未闭合的元素。我来帮你一步步排查和解决:

可能的原因及解决方案

1. 重复监听message事件引发的潜在问题

你现在有两个独立的client.on('message')事件处理函数,虽然这本身不会直接触发语法错误,但容易引发逻辑混乱,也可能在书写时不小心引入语法疏漏。建议把所有消息处理逻辑合并到一个事件回调里:

client.on('message', message => {
 console.log(`${message.author.tag} at ${message.guild.name} said: ${message.content}\n`);

 // 跳过机器人自身发送的消息
 if (message.author.bot) return;

 // 脏话过滤逻辑
 if (message.content === "fuck") {
  message.reply("Don't say bad words :(");
 }

 // 命令处理逻辑
 if (!message.content.startsWith(prefix)) return;
 const commandBody = message.content.slice(prefix.length);
 const args = commandBody.split(' ');
 const command = args.shift().toLowerCase();

 // 后续命令逻辑...
});

2. 缺少分号导致自动分号插入(ASI)失败

你的代码中有几个变量声明没有加分号,虽然JavaScript通常会自动补充分号,但在某些边界场景下会导致解析错误。给所有变量声明加上分号:

const Discord = require("discord.js");
const mySecret = process.env['BOT_TOKEN']; // 补充分号
const client = new Discord.Client();
const prefix = "st!";
const verNumber = "1.0.3bc"; // 补充分号
const dev = "567014451337887744"; // 补充分号

3. 未闭合的函数/括号

检查你的第二个client.on("message")回调函数是否完整闭合。你提供的代码末尾是...,要确保实际代码中有});来结束这个事件监听:

client.on("message", function (message) {
 if (message.author.bot) return;
 if (!message.content.startsWith(prefix)) return;
 const commandBody = message.content.slice(prefix.length);
 const args = commandBody.split(' ');
 const command = args.shift().toLowerCase();
 // ... 你的其他代码 ...
}); // 确保这里有闭合的括号和分号

4. Node.js版本过低

const是ES6的语法特性,需要Node.js v6或更高版本支持。如果你使用的是老旧版本的Node.js,升级到v14及以上(discord.js v12+推荐的版本)可以解决这类语法兼容问题。

验证修复

按照上面的步骤调整代码后,重新运行机器人,应该就能解决这个Unexpected token 'const'的错误了。如果还有问题,可以检查代码中是否有其他未闭合的代码块(比如if语句、函数)或者拼写错误。

内容的提问来源于stack exchange,提问作者stationaryStation

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 17:02:38