连接到mongodb atlas时收到错误:"querySrv ECONNREFUSED _mongodb._tcp.cluster0.vxgqt.mongodb.net"



我在终端中收到以下错误:错误:querySrv ECONNREFUSED_ongodb_tcp.cluster0.vxgqt.mongodb.net在运行index.js文件时未连接直到昨天,它一直工作得很好,今天运行时出现了这个错误。这是代码片段:

import express from 'express';
import bodyParser from 'body-parser';
import mongoose from 'mongoose';
import cors from 'cors';
import postRoutes from './routes/posts.js';
const app = express();
app.use(bodyParser.json({ limit: '30mb', extended: true }))
app.use(bodyParser.urlencoded({ limit: '30mb', extended: true }))
app.use(cors());
app.use('/posts', postRoutes);
const CONNECTION_URL = 'mongodb+srv://<username>:<password>@cluster0.vxgqt.mongodb.net/myFirstDatabase?retryWrites=true&w=majority';
const PORT = process.env.PORT|| 5000;
mongoose.connect(CONNECTION_URL, { useNewUrlParser: true, useUnifiedTopology: true })
.then(() => app.listen(PORT, () => console.log(`Server Running on Port: http://localhost:${PORT}`)))
.catch((error) => console.log(`${error} did not connect`));
mongoose.set('useFindAndModify', false);

注意:我在连接url中提供了正确的用户名和密码

我找到了一个临时修复程序,它正在运行:在MongoDB Atlas中连接您的应用程序时,我选择了节点版本2.2.12或更高版本,而不是3.6或更高(我之前使用过(。通过选择此选项,应用程序现在可以像之前一样正常工作

首先检查您的互联网连接,然后转到mongodb Atlas,检查您的ip地址是否在白名单中可用。出于测试目的,允许所有ip访问,然后再次连接。

querySrv ECONNREFUSED表示解析SRV记录的尝试无法连接到名称服务器。

这是DNS问题。您的应用程序需要能够解析_mongodb._tcp.cluster0.vxgqt.mongodb.net的SRV记录,才能使用mongodb+srv连接字符串。

您需要在mongoDB的URI中写入您的用户名和密码,这意味着您需要取CONNECTION_URL常量变量的值,并在mongoDB上更改为您帐户的当前用户名,在mongoDB上更改为帐户的当前密码

最新更新