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

使用Node.js连接MongoDB时出现SyntaxError: Unexpected token '?'错误的解决方法

Node.js 连接 MongoDB 时出现 SyntaxError: Unexpected token '?' 错误

问题描述

使用 Node.js 搭配 MongoDB 开发,已创建服务器及数据库连接文件,但运行时触发 SyntaxError: Unexpected token '?' 错误。

相关代码

Server.js 文件

const http = require('http');

require("./config/dbConnect")

const app = require('./app/app');
// 如果环境变量未配置端口,则使用2020端口
const PORT = process.env.PORT || 2020;

// 创建服务器
const serevr = http.createServer(app);
serevr.listen(PORT, console.log(`Server running on port ${PORT}`));

dbConnect.js 文件

const mongoose = require("mongoose");


const dbConnect = async() => {
try {
    // await mongoose.connect("mongodb+srv://<username>:<password>@lms.yy6o4yl.mongodb.net/lms?retryWrites=true&w=majority");
    mongoose.connect("mongodb://localhost:27017/collectionName", {
        useNewUrlParser: true,
        useUnifiedTopology: true
    });
    console.log('DB connected successfully');
} catch (error) {
    console.log("DB connection Failed", error.message);
}
};

dbConnect();

错误截图

错误截图

解决方法

这个错误的核心原因是你的 Node.js 版本过低,不支持 ES2020 引入的可选链操作符(?.)。Mongoose 较新版本的代码中使用了该语法,而旧版 Node.js 无法解析。

你可以通过以下两种方式解决:

  • 升级 Node.js 版本

    • 安装 Node 版本管理工具(如 nvm),执行命令切换到 LTS(长期支持)版本;
    • 或者直接前往 Node.js 官方网站下载并安装 LTS 版本,确保版本在 14.0.0 及以上(可选链操作符从 Node.js 14 开始支持)。
  • 降级 Mongoose 版本
    如果暂时无法升级 Node.js,可以安装兼容旧版本 Node 的 Mongoose 版本,比如 5.x 系列:

    npm uninstall mongoose
    npm install mongoose@5.13.20
    

另外,你的 dbConnect.js 里还有个小问题:mongoose.connect 是异步方法,你用了 async 函数但没有加 await,无法正确捕获连接失败的错误,建议修改成:

const mongoose = require("mongoose");

const dbConnect = async() => {
  try {
    await mongoose.connect("mongodb://localhost:27017/collectionName", {
        useNewUrlParser: true,
        useUnifiedTopology: true
    });
    console.log('DB connected successfully');
  } catch (error) {
    console.log("DB connection Failed", error.message);
    process.exit(1); // 连接失败时退出进程,避免服务挂起
  }
};

dbConnect();

内容的提问来源于stack exchange,提问作者Irshad Khan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 21:17:28