在AWS Ubuntu实例部署时Mongoose报Unexpected token '.'语法错误
解决Mongoose中出现的SyntaxError: Unexpected token '.'错误
错误原因
你遇到的SyntaxError: Unexpected token '.'是因为服务器上的Node.js版本不支持可选链操作符(?.)。这个语法在Node.js 14.0.0及以上版本才默认启用,而你服务器的Node版本低于该要求。本地环境能正常运行,说明本地Node版本满足语法支持条件。
解决方案
- 检查并升级服务器Node.js版本
- 先查看当前Node版本:
node -v - 如果版本低于14.0.0,建议升级到稳定版(比如18.x或20.x)。可以用nvm(Node版本管理器)来便捷管理:
- 安装nvm后,执行以下命令安装指定版本:
nvm install 18 - 设置该版本为默认:
nvm alias default 18
- 安装nvm后,执行以下命令安装指定版本:
- 先查看当前Node版本:
- 降级Mongoose版本(无法升级Node时)
如果服务器无法升级Node,可以降级Mongoose到兼容旧版本的分支:- 降级到支持Node.js 12+的Mongoose 6.x:
npm install mongoose@6 --save - 若Node版本更低,可降级到Mongoose 5.x:
npm install mongoose@5 --save
- 降级到支持Node.js 12+的Mongoose 6.x:
补充说明
你重装node_modules无效,是因为问题根源不在依赖包本身,而是Node版本不支持依赖代码中使用的新语法,所以升级Node或降级依赖才是解决办法。
内容的提问来源于stack exchange,提问作者Eduardo Gomez
相关产品推荐
相关产品推荐

