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系列,执行命令:
5.x版本的mongoose依赖的mongodb驱动不会使用可选链这类高版本语法,能兼容更低版本的Node。npm uninstall mongoose npm install mongoose@5.13.20
额外代码优化提醒:
你的代码里多次调用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
相关产品推荐
相关产品推荐

