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

云服务器运行Discord音乐机器人报错Unexpected token '.'如何解决

问题诊断

核心错误为SyntaxError: Unexpected token '.',触发位置是代码中的?.可选链操作符:

  • 该语法是ES2020版本新增特性,仅Node.js 14.0.0及以上版本支持
  • 本地运行正常是因为你的本地Node版本符合要求,云服务器环境Node版本过低导致语法不识别
解决方案

方案一:升级云服务器Node.js版本(推荐)

无需修改任何代码,适配性最好:

  • 若使用PebbleHost托管面板,直接在运行环境设置中选择14.x及以上的Node.js LTS版本即可
  • 若为自行管理的云服务器,可通过nvm工具管理Node版本,安装完成后执行nvm install --lts即可安装最新长期支持版Node,同时解决日志中提示的Server executable "node" not found问题
  • 补充优化:可在项目package.json中添加启动脚本,避免面板识别不到启动命令:
{
  "scripts": {
    "start": "node index.js"
  }
}

方案二:修改代码兼容低版本Node.js

若暂时无法升级服务器环境,只需替换代码中所有?.可选链写法为传统嵌套判断即可,你当前的代码共需修改2处:

  1. 第67行原代码:
if (!client.application?.owner) await client.application?.fetch();

替换为:

if (client.application && !client.application.owner) await client.application.fetch();
  1. 第69行原代码:
if (message.content === "!deploy" && message.author.id === client.application?.owner?.id) {

替换为:

if (message.content === "!deploy" && client.application && client.application.owner && message.author.id === client.application.owner.id) {

替换后重新上传代码启动即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 11:48:02