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

Node.js连接MongoDB时遇querySrv EREFUSED错误求助

解决Mongoose连接MongoDB时的querySrv EREFUSED错误

错误详情

Error: querySrv EREFUSED _mongodb._tcp.e-commerce.xocsdrz.mongodb.net
    at QueryReqWrap.onresolve [as oncomplete] (node:internal/dns/promises:251:17) {
  errno: undefined,
  code: 'EREFUSED',
  syscall: 'querySrv',
  hostname: '_mongodb._tcp.e-commerce.xocsdrz.mongodb.net'
}

我的连接代码

const mongoose = require('mongoose');

// const dotenv =  require("dotenv")
// dotenv.config({path:`config/config.env`});
// const DB = process.env.DB;

// console.log(DB);

const connectDatabase = () => {
  mongoose
    .connect(
      'mongodb+srv://Karishma:<password>@e-commerce.xocsdrz.mongodb.net/?retryWrites=true&w=majority',
      {}
    )
    .then((data) => {
      console.log(`mongoDb connected with the server:${data.connection.host}`);
    })
    .catch((err) => {
      console.log(err);
    });
};

module.exports = connectDatabase;

排查与解决方法

  • 检查网络与DNS配置:该错误是DNS查询被拒绝导致,大概率是当前网络(如公司内网、校园网)限制了SRV记录查询。可切换到手机热点等不受限网络,或把本地DNS改为公共DNS(如8.8.8.8)重试。
  • 确认MongoDB Atlas集群状态:登录MongoDB Atlas控制台,检查e-commerce集群是否正常运行,没有被暂停、删除或处于维护状态。
  • 更换连接字符串格式:若SRV格式连接失败,可在Atlas控制台生成非SRV格式连接字符串。操作步骤:进入集群→点击"Connect"→选择"Connect your application"→选择Node.js驱动,取消勾选"Include SRV record",复制生成的标准连接字符串替换现有代码中的地址。
  • 验证账号权限与密码:确保连接字符串中的<password>已替换为真实密码,用户名Karishma是Atlas中已创建的数据库用户,且该用户拥有e-commerce数据库的读写权限。
  • 检查IP白名单设置:在Atlas控制台的"Network Access"页面,确认当前设备的公网IP已添加到白名单,或临时添加0.0.0.0/0(允许所有IP访问)测试是否是IP限制导致连接失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 11:25:26