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

如何解决MongooseServerSelectionError connect ECONNREFUSED 127.0.0.1:27017报错

Windows环境Mongoose连接MongoDB报错ECONNREFUSED解决方案
  • 确认MongoDB进程持续运行
    你在PowerShell中直接执行mongod命令启动的MongoDB为前台进程,若关闭了运行mongod的PowerShell窗口,或在该窗口执行了中断操作,MongoDB服务会直接停止,导致27017端口无服务响应,抛出ECONNREFUSED错误。
    建议将MongoDB安装为Windows系统服务实现后台常驻:
    1. 以管理员权限打开PowerShell
    2. 执行mongod --install --serviceName MongoDB --dbpath 你的MongoDB数据存储目录(例如C:\data\db)
    3. 执行net start MongoDB启动服务,后续服务不会随PowerShell关闭而停止
  • 补全Mongoose连接配置与错误捕获
    当前代码缺少异步错误捕获逻辑,部分版本Mongoose需要显式指定连接参数,修改db.js代码如下:
import mongoose from "mongoose";

const connectDB = async () => {
  try {
    // Mongoose 6.x及以上版本可省略useNewUrlParser、useUnifiedTopology参数,已默认开启
    await mongoose.connect("mongodb://127.0.0.1:27017/wetube", {
      useNewUrlParser: true,
      useUnifiedTopology: true
    });
    console.log("MongoDB 连接成功");
  } catch (err) {
    console.error("MongoDB 连接失败:", err);
    process.exit(1);
  }
}

export default connectDB;

修改完成后在项目入口文件调用connectDB()启动连接即可,既能捕获具体连接错误,也不会抛出未处理的Promise拒绝警告。

  • 检查27017端口占用情况
    若以上操作后仍报错,在PowerShell执行netstat -ano | findstr "27017"查看27017端口是否被MongoDB占用,无输出则说明MongoDB未正常监听该端口,需检查mongod配置是否修改了默认端口。

错误截图:
错误截图

内容的提问来源于stack exchange,提问作者Lee Young Uk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 00:15:01