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

无法连接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
  • 简化连接配置
    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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 17:42:11