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
相关产品推荐
相关产品推荐

