无法连接MongoDB客户端,遇SyntaxError: Unexpected token '??='错误求助
问题解决:MongoDB连接报错
SyntaxError: Unexpected token '??=' 核心原因
??=是空值合并赋值运算符,该语法仅在Node.js 15.0.0及以上版本支持。尽管你全局Node版本为v20.7.0,但实际运行项目的环境(如本地版本管理工具、容器或服务器)可能使用了更低版本的Node,导致mongodb@6.1.0内部代码中的该语法无法被解析,从而触发报错。
解决步骤
确认实际运行环境的Node版本
在项目运行的终端或容器内执行:node -v确保版本≥15.0.0。若版本不一致,需切换到指定版本:
- 用nvm管理的话:
nvm use 20.7.0 - 用pm2运行的话,指定Node路径:
pm2 start app.js --interpreter=/path/to/node/v20.7.0/bin/node
- 用nvm管理的话:
简化连接配置
mongodb@6.x版本中,useNewUrlParser和useUnifiedTopology已默认启用,可从连接配置中删除,简化代码:const { MongoClient } = require('mongodb'); const uri = 'mongodb://localhost/testDatabase'; const client = new MongoClient(uri); async function connectToDatabase() { try { await client.connect(); console.log('Connected to the MongoDB database'); } catch (err) { console.error('Error connecting to the MongoDB database:', err); } } module.exports = { connectToDatabase, getDatabase: () => client.db(), };重新安装依赖(可选)
若确认Node版本达标仍报错,可删除现有依赖文件后重新安装:rm -rf node_modules package-lock.json npm install
内容的提问来源于stack exchange,提问作者TheParrot12345
相关产品推荐
相关产品推荐

