无法导入passport-local-mongoose且遇语法错误,已排查仍未解决
解决passport-local-mongoose导入时的SyntaxError问题
从你给出的错误信息来看,这个Unexpected token {的语法错误,核心原因是你的Node.js版本过低,不支持ES6的对象解构语法(也就是.then(({ user }) => {这种写法),而新版的passport-local-mongoose已经使用了这类较新的JS语法,导致旧版本Node无法解析。
下面给你两个可行的解决方案:
方案一:升级Node.js版本
这是更推荐的长期解决方案,升级到支持ES6语法的Node.js版本(建议直接安装LTS长期支持版本,比如10.x及以上):
- 如果用
nvm(Node版本管理器)来升级,执行以下命令:nvm install --lts nvm use --lts - 如果你是直接下载安装包升级,下载对应系统的LTS版本安装即可。
升级完成后,重新执行npm install确保依赖适配,再启动项目应该就能解决这个问题。
方案二:安装兼容旧Node版本的passport-local-mongoose旧版本
如果你暂时不想升级Node,可以安装passport-local-mongoose的5.x版本,这个版本没有使用新的ES6语法,能兼容旧Node:
npm uninstall passport-local-mongoose npm install passport-local-mongoose@5.0.1
安装完成后,重新导入模块并启动项目,应该就能正常运行了。
内容的提问来源于stack exchange,提问作者user7195016
相关产品推荐
相关产品推荐

