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

Node.js部署时Nodemon启动崩溃报Unexpected token '.'错误怎么办

错误触发原因

你遇到的语法报错是因为代码中使用了ES2020 新增的可选链操作符 ?.,而你当前使用的 Node.js v12.22.6 版本原生不支持该特性,解析器识别不了?.语法,就会把第二个.判定为非法字符抛出错误。

解决建议

方案1:升级 Node.js 版本(推荐)

可选链操作符在 Node.js v14.0.0 及以上版本才获得完整原生支持,直接升级 Node.js 到 v14.x 或更高的 LTS 版本即可解决问题:

  • 如果你使用 nvm 管理 Node 版本,可以直接执行以下命令安装切换:
nvm install 16.20.2
nvm use 16.20.2
  • 升级完成后重新启动 nodemon 即可正常运行。

方案2:修改代码兼容低版本 Node(适合无法升级 Node 的场景)

把代码中所有的?.写法替换为传统的层级判断写法即可:

  1. 替换const category = request?.baseUrl?.replace('/v1/', '') || ' ';为:
const category = request && request.baseUrl ? request.baseUrl.replace('/v1/', '') : ' ';
  1. 替换const subcategory = phproutes[category]?.find((x) => x.nodeapi === nodeUrl[0]).subcategory || '';为:
const subcategory = phproutes[category] && phproutes[category].find(x => x.nodeapi === nodeUrl[0]) 
  ? phproutes[category].find(x => x.nodeapi === nodeUrl[0]).subcategory 
  : '';
  1. 替换const phproute = phproutes[category]?.find((x) => x.nodeapi === nodeUrl[0]).phproutes || '';为:
const phproute = phproutes[category] && phproutes[category].find(x => x.nodeapi === nodeUrl[0]) 
  ? phproutes[category].find(x => x.nodeapi === nodeUrl[0]).phproutes 
  : '';

修改完后保存代码,nodemon 会自动重启,报错就会消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:42:03