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

使用Mongoose连接MongoDB报错connect ECONNREFUSED 127.0.0.1:27017怎么办?

问题排查与解决方案

核心报错本质:MongooseServerSelectionError: connect ECONNREFUSED 127.0.0.1:27017 代表本地27017端口没有运行的MongoDB服务,Mongoose无法建立连接,此前更换端口、删除数据库文件的操作未解决服务未正常启动的核心问题。后续的UnhandledPromiseRejectionWarning是代码中没有对Mongoose连接的异步异常做捕获导致的。

1. 启动MongoDB服务

根据你使用的操作系统执行对应操作,确认MongoDB服务正常运行:

  • Windows系统:打开服务管理器,找到MongoDB对应服务,右键选择「启动」,确认服务状态变为「正在运行」
  • macOS系统:如果是Homebrew安装的MongoDB,终端执行 brew services start mongodb-community;也可以直接执行 mongod 命令手动启动服务
  • Linux系统:终端执行 sudo systemctl start mongod,如果启动失败可执行 sudo systemctl status mongod 查看具体报错原因

2. 验证端口连通性

服务启动后,终端执行 mongosh (旧版本MongoDB用 mongo 命令),如果能正常进入MongoDB交互终端,说明27017端口已正常监听,连接条件已满足。

3. 修复代码异常捕获逻辑

调整你的Mongoose连接代码,增加异常捕获逻辑,避免未处理的Promise rejection警告,参考写法如下:

const mongoose = require('mongoose');

// 数据库连接方法
const connectMongoDB = async () => {
  try {
    // 替换为你实际的数据库连接地址、库名
    await mongoose.connect('mongodb://127.0.0.1:27017/my_database');
    console.log('MongoDB 连接成功');
  } catch (error) {
    console.error('MongoDB 连接失败:', error.message);
    // 可根据业务需要增加重试逻辑,或者直接退出进程
    process.exit(1);
  }
}

// 调用连接方法
connectMongoDB();

如果你的MongoDB配置了自定义端口、身份认证,或者使用的是远程MongoDB实例,替换mongoose.connect方法中的连接字符串为实际地址即可。

内容的提问来源于stack exchange,提问作者Piyush Jangid

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:45:04