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

Node.js连接MongoDB时出现MongoServerSelectionError错误求助

排查Node.js连接MongoDB出现MongoServerSelectionError: connect ECONNREFUSED ::1:27017的问题

错误原因

  • MongoDB本地服务未启动:端口27017没有被MongoDB监听,导致连接请求被拒绝。
  • IPv6地址解析问题:localhost被解析为IPv6地址::1,但MongoDB可能仅监听了IPv4的127.0.0.1端口。
  • MongoDB配置限制:服务绑定了特定IP(未包含本地地址),或者修改了默认端口(不是27017)。

解决办法

1. 检查并启动MongoDB服务

  • Windows:按下Win+R输入services.msc打开服务管理器,找到MongoDB服务,右键选择「启动」,可设置为「自动」启动避免重复问题。
  • macOS:若用Homebrew安装,执行命令:
    brew services start mongodb-community
    
    手动安装则执行:
    sudo mongod --config /usr/local/etc/mongod.conf
    
  • Linux:执行命令启动服务:
    sudo systemctl start mongod
    
    可通过sudo systemctl status mongod检查服务状态。

2. 修改连接地址为IPv4格式

将连接URL从mongodb://localhost:27017/改为mongodb://127.0.0.1:27017/,强制使用IPv4连接,避免解析问题。

3. 检查MongoDB配置文件

找到MongoDB的配置文件(路径根据系统不同有所差异):

  • Windows:C:\Program Files\MongoDB\Server\{版本号}\bin\mongod.cfg
  • macOS:/usr/local/etc/mongod.conf
  • Linux:/etc/mongod.conf

打开配置文件后:

  • 找到net.bindIp项,确保值包含127.0.0.1或设置为0.0.0.0(允许所有IP访问)。
  • 检查net.port项,确认端口为27017,若修改过则同步更新连接URL中的端口号。

优化你的连接代码

建议添加错误捕获和连接关闭逻辑,避免未处理异常:

const { MongoClient } = require('mongodb');

const url = 'mongodb://127.0.0.1:27017/';
const client = new MongoClient(url);
const dataBase = 'nodejs';

async function getdata() {
  try {
    await client.connect(); 
    console.log('连接到服务器成功');
    const db = client.db(dataBase);
    const collection = db.collection('node');
    const response = await collection.find({}).toArray();
    console.log(response);
  } catch (err) {
    console.error('操作出错:', err);
  } finally {
    await client.close();
  }
}

getdata();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 05:15:49