连接 mongodb atlas 时出现错误:“querySrv ECONNREFUSED _mongodb._tcp.cluster0.vxgqt.mongodb.net”

问题描述 投票:0回答:5

我在终端中收到以下错误: 错误: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);

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

node.js mongodb express mongoose
5个回答
1
投票

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

这是一个 DNS 问题。 您的应用程序需要能够解析

_mongodb._tcp.cluster0.vxgqt.mongodb.net
的 SRV 记录才能使用
mongodb+srv
连接字符串。


1
投票

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


0
投票

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


0
投票

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


0
投票

进入网络访问设置并单击添加IP地址。这解决了我的问题

© www.soinside.com 2019 - 2024. All rights reserved.