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

Node.js后端连接MongoDB失败:ECONNREFUSED错误求助

解决MongoDB与Node.js连接的ECONNREFUSED错误

1. 检查MongoDB服务状态

  • Windows:打开命令提示符,运行 net start MongoDB,若提示服务未启动,先确认MongoDB安装完整,也可手动在系统服务列表中找到MongoDB服务并启动。
  • macOS/Linux:终端执行 sudo systemctl start mongod,用 sudo systemctl status mongod 查看服务是否正常运行。

2. 修正连接字符串配置

检查你的server.js中的MongoDB连接代码:

  • 本地连接优先用 mongodb://127.0.0.1:27017/你的数据库名,部分环境下IPv6地址::1可能存在兼容性问题,换成IPv4的127.0.0.1可规避这类问题。
  • 确认连接字符串里的数据库名称拼写正确,不要遗漏。

3. 排查端口与防火墙问题

  • 确认本地防火墙没有拦截27017端口的入站/出站请求。
  • 检查端口是否被其他程序占用:
    • Windows:执行 netstat -ano | findstr :27017
    • macOS/Linux:执行 lsof -i :27017
      若端口被占用,要么停止占用该端口的程序,要么修改MongoDB配置文件(mongod.conf)中的端口号,同时同步更新Node.js里的连接字符串。

4. 验证MongoDB安装完整性

如果MongoDB服务启动失败,大概率是安装环节有问题:

  • 检查MongoDB默认数据目录是否存在且有权限(Windows默认C:\data\db,Linux/macOS默认/data/db),不存在则手动创建。
  • 重新安装时,Windows环境务必勾选“Install MongoDB as a Service”选项,确保服务能被系统管理。

5. 用极简脚本测试连接

先脱离业务代码,写个极简脚本验证基础连接是否正常:

const mongoose = require('mongoose'); // 用原生MongoDB驱动的话替换成对应包

async function testMongoConn() {
  try {
    await mongoose.connect('mongodb://127.0.0.1:27017/test-demo');
    console.log('MongoDB连接成功');
    await mongoose.disconnect();
  } catch (err) {
    console.error('连接失败详情:', err);
  }
}

testMongoConn();

如果这个脚本仍报错,说明问题出在环境配置而非业务代码。

内容的提问来源于stack exchange,提问作者Swastik Kasera

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 17:14:55