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

MERN栈后端开发执行npm start启动MongoDB连接报错求解

问题修复方案

你的代码存在3处可直接修复的问题,对应报错逐一调整即可:

    1. Mongoose连接参数拼写错误+版本兼容问题
      你使用的是6.x及以上版本的Mongoose,useCreateIndex、useFindAndModify、useNewUrlParser、useUnifiedTopology这四个配置项已经默认内置支持,不需要手动传递,而且你手写的useUnifieldTopologyL存在拼写错误,直接删除mongoose.connect的第二个配置参数对象即可。
    1. 模板字符串语法错误
      你打印端口的日志使用了普通单引号包裹模板变量,导致${PORT}不会被解析为变量值,需要把单引号替换为反引号`。
    1. 缺少异步错误捕获逻辑
      Mongoose连接是异步操作,你没有添加错误捕获逻辑,才会触发未处理Promise拒绝的警告,需要给连接逻辑添加错误监听。

修复后完整代码

const express = require("express");
const mongoose= require("mongoose");
const bodyParser = require("body-parser");
const cors = require("cors");
const dotenv=require("dotenv");
const app = express();
require("dotenv").config();

const PORT =process.env.PORT || 8070;

app.use(cors());
app.use(bodyParser.json());

const URL = process.env.MONGODB_URL;

// 移除不兼容的旧配置参数
mongoose.connect(URL);

const connection = mongoose.connection;
connection.once("open", () => {
    console.log("Mongodb Connection success!");
})
// 添加错误监听
connection.on("error", (err) => {
    console.log("Mongodb Connection error: ", err);
})

app.listen(PORT, () => {
    // 替换单引号为反引号
    console.log(`Server is up and running on port number: ${PORT}`)
})

修复完成后重新执行npm start即可正常启动服务,完成MongoDB连接。

内容的提问来源于stack exchange,提问作者kaushalya kalansooriya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 12:54:03