Discord bot无法正常上线 运行报错SyntaxError: Unexpected token ?
Discord Bot上线报错修复方案
报错根因
- Node.js版本过低:Discord.js v14及以上版本要求Node.js版本≥16.9.0,低版本Node无法识别可选链、空值合并等高版本语法,就会抛出
SyntaxError: Unexpected token ?错误。你可以运行node -v查看当前Node版本,低于要求的话直接升级到16.9.0以上的LTS版本即可。 - 代码存在语法与API使用错误:
- 你使用的
message事件在Discord.js v13版本就已废弃,v14及以上版本已彻底移除,需要替换为messageCreate事件 - 代码结构错误,没有单独注册bot上线触发的
ready事件,反而把上线日志错误写到了消息事件的作用域里,还多了一组无效的大括号 - v14及以上版本初始化Client时必须指定对应的Intents权限,否则无法正常接收消息等事件
- 你使用的
修复后的完整代码
const Discord = require("discord.js"); const client = new Discord.Client({ intents: [ Discord.GatewayIntentBits.Guilds, Discord.GatewayIntentBits.GuildMessages, Discord.GatewayIntentBits.MessageContent ] }); const TOKEN = "my-token-is-here"; client.on("ready", () => { console.log("Bot Is Ready!"); }); client.on("messageCreate", message => { if (message.content === "Hello Discord Bot") { message.channel.send("Hi There!"); } }); client.login(TOKEN)
额外注意
你需要提前进入Discord开发者后台的对应Bot设置页面,开启Message Content Intent权限,否则Bot无法读取服务器内的消息内容,消息回复功能不会生效。
内容的提问来源于stack exchange,提问作者idontwantthisaccountanymore
相关产品推荐
相关产品推荐

