我在终端中收到以下错误: 错误:querySrv ECONNREFUSED _mongodb._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);
注意:我已在连接网址中提供了正确的用户名和密码
querySrv ECONNREFUSED
表示尝试解析 SRV 记录无法连接到名称服务器。
这是一个 DNS 问题。 您的应用程序需要能够解析
_mongodb._tcp.cluster0.vxgqt.mongodb.net
的 SRV 记录才能使用 mongodb+srv
连接字符串。
我找到了一个临时修复程序,该修复程序正在运行:在 MongoDB Atlas 中连接您的应用程序下,我选择了节点版本 2.2.12 或更高版本,而不是 3.6 或更高版本(我之前使用过)。通过选择此选项,应用程序现在可以像以前一样正常运行
首先检查您的互联网连接,然后进入 mongodb Atlas 检查您的 IP 地址是否在白名单中。 出于测试目的,允许所有 IP 访问,然后再次连接。
您需要在 mongoDB 的 URI 中写入您的用户名和密码,这意味着您需要获取 CONNECTION_URL 常量变量的值,并更改为您在 mongoDB 上帐户的当前用户名,并更改为您在 mongoDB 上帐户的当前密码
进入网络访问设置并单击添加IP地址。这解决了我的问题