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

排查Mongoose报错:MongoNetworkError无法连接localhost:27017服务器

问题描述

我正在使用MongoDB 4.2和Mongoose 5.7.0,运行应用时出现如下错误:

C:\Users\Dell\Documents\23\code\newApp\node_modules\mongodb\lib\core\topologies\server.js:441
              new MongoNetworkError(
              ^
    MongoNetworkError: failed to connect to server [localhost:27017] on first connect [Error: connect ECONNREFUSED ::1:27017

已尝试更换Mongoose版本、使用不同的连接URL、配置防火墙允许27017端口的入站请求,但问题仍未解决。

数据库连接代码如下:

const mongoose = require('mongoose');

const dbURL = 'mongodb://localhost:27017/myDatabase';

const connectDB = () => {
    mongoose.connect(dbURL, {
        useNewUrlParser: true,
        useUnifiedTopology: true,
    });

    const db = mongoose.connection;
    db.on('connected', () => {
        console.log('Connected to MongoDB');
    });
}

module.exports = connectDB;

请问该如何修复这个错误?


解决方案

以下是针对性的排查和修复步骤:

  • 检查MongoDB服务状态
    ECONNREFUSED说明本地27017端口无MongoDB服务监听。打开命令提示符执行:

    net start MongoDB
    

    若提示服务未安装,可手动启动:找到MongoDB安装目录的bin文件夹,运行mongod.exe;若已配置服务,重启服务即可。

  • 强制使用IPv4连接
    错误中出现的::1是IPv6本地地址,系统可能优先解析localhost为IPv6导致连接失败。修改连接URL为:

    const dbURL = 'mongodb://127.0.0.1:27017/myDatabase';
    
  • 添加错误监听获取详细信息
    现有代码仅监听连接成功事件,添加错误监听可定位具体问题:

    const db = mongoose.connection;
    db.on('connected', () => {
        console.log('Connected to MongoDB');
    });
    db.on('error', (err) => {
        console.error('MongoDB连接错误:', err);
    });
    
  • 验证MongoDB绑定地址配置
    打开MongoDB配置文件(通常为mongod.cfg),检查net.bindIp项,确保设置为127.0.0.1或0.0.0.0(允许所有地址访问),修改后重启MongoDB服务。

  • 检查端口占用情况
    执行命令查看27017端口是否被其他程序占用:

    netstat -ano | findstr :27017
    

    若有占用,结束对应进程或修改MongoDB监听端口(在配置文件中修改net.port)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 03:50:40