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

Node.js使用Mongoose连接MongoDB Atlas时出现querySrv ECONNREFUSED错误的排查求助

Node.js使用Mongoose连接MongoDB Atlas时出现querySrv ECONNREFUSED错误的排查求助

我正在构建一个MERN应用,尝试使用Mongoose将我的Node.js后端连接到MongoDB Atlas。

但是启动服务器时,我遇到了以下错误:

Error: querySrv ECONNREFUSED _mongodb._tcp.cluster0.shf9fng.mongodb.net

环境

  • Node.js: v20.x
  • npm: 11.9.0
  • mongoose: 9.2.3
  • OS: Windows 11

server.js

const express = require("express");
const chats = require("./data/data");
const dotenv = require("dotenv");
const connectDB = require("./config/db");

dotenv.config();

connectDB();

const app = express();

app.get("/", (req, res) => {
  res.send("API is Running");
});

const PORT = process.env.PORT || 5000;

app.listen(PORT, () => {
  console.log(`Server started on PORT ${PORT}`);
});

db.js

const mongoose = require("mongoose");

const connectDB = async () => {
  try {
    const conn = await mongoose.connect(process.env.MONGO_URI);
    console.log(`MongoDB Connected: ${conn.connection.host}`);
  } catch (error) {
    console.log(`Error: ${error.message}`);
    process.exit();
  }
};

module.exports = connectDB;

.env

PORT=5000  MONGO_URI=mongodb+srv://user_name:password%402006%40EX@cluster0.shf9fng.mongodb.net/?appName=Cluster0

已尝试的解决方法

  • 在MongoDB Atlas中白名单了IP(0.0.0.0/0)
  • 对密码进行了编码(@ → %40)
  • 使用nslookup验证了SRV记录的DNS
  • 确认.env变量已正确加载
  • 重启了服务器

尽管做了这些尝试,连接还是因为SRV错误失败了。

请问可能是什么原因导致的这个问题,我该如何修复?


备注:内容来源于stack exchange,提问作者sarthak arya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 18:24:49