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

Node.js连接MongoDB遇语法错误:代码问题还是依赖缺失?

解决Node.js连接MongoDB时的SyntaxError: Unexpected token .问题

这个错误的核心原因是你当前使用的Node.js版本不支持ES2020的可选链操作符(?.),报错里的options?.session正是用了这个语法,而你的Node版本太老,无法识别这个符号。和你的代码语法、依赖安装无关。

解决办法:

  • 升级Node.js版本:可选链从Node.js v14.0.0开始正式支持,直接升级到v14及以上的稳定LTS版本(比如v18或v20),升级后这个语法就能被正常解析。
  • 降级mongoose版本:如果暂时不想升级Node,可以卸载当前的mongoose,安装适配旧Node版本的mongoose 5.x系列,执行命令:
    npm uninstall mongoose
    npm install mongoose@5.13.20
    
    5.x版本的mongoose依赖的mongodb驱动不会使用可选链这类高版本语法,能兼容更低版本的Node。

额外代码优化提醒:

你的代码里多次调用app.use(cors()),这会导致CORS配置被重复覆盖,可能引发预期外的跨域问题。建议合并成一个统一的配置:

const corsOptions = {
  origin: ['http://localhost:4200', 'http://localhost:4200/register'],
  credentials: true,
  optionSuccessStatus: 200
}
app.use(cors(corsOptions))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 14:12:24