gpt4 book ai didi

node.js - 连接MongoDB Atlas时如何修复 'Error: querySrv EREFUSED'?

转载 作者:行者123 更新时间:2023-12-02 04:21:44 34 4
gpt4 key购买 nike

我是 MongoDB 4.0.6 的新手,并尝试使用 Node/Express.js 将其实现到我的网站中,但是当我尝试连接到 mongodb+srv://${process.env.MONGOUSER} 时:${process.env.MONGOPASS}@main-03xkr.mongodb.net/main 我收到此错误:

{ Error: querySrv EREFUSED _mongodb._tcp.main-03xkr.mongodb.net at QueryReqWrap.onresolve [as oncomplete] (dns.js:199:19) errno: 'EREFUSED', code: 'EREFUSED', syscall: 'querySrv', hostname: '_mongodb._tcp.main-03xkr.mongodb.net' }

我尝试连接到mongodb://localhost:27017/main,但这确实似乎有效。

相关代码如下:

require('dotenv').config();
const mongoose = require('mongoose');

// Database
const uri = `mongodb+srv://${process.env.MONGOUSER}:${process.env.MONGOPASS}@main-03xkr.mongodb.net/main`;
const localURI = 'mongodb://localhost:27017/main';

var Project = require('./models/project');

mongoose.connect(uri, { useNewUrlParser: true });
const db = mongoose.connection;

db.once('open', () => console.log('Successfully connected to MongoDB'));
db.on('error', (e) => console.log(e));

// Routes
app.get('/', (req, res) => {
Project.find({}, (e, projects) => {
if (e) console.log(e);

res.render('home.ejs', {
projects: projects
});
});
});

那么有谁知道如何修复这个错误并解释一下这里发生了什么?

最佳答案

如果您遇到此错误,请尝试使用 Node.js 2.2.12 或更高版本的旧连接字符串:

mongodb://<username>:<password>@main-shard-00-00-03xkr.mongodb.net:27017,main-shard-00-01-03xkr.mongodb.net:27017,main-shard-00-02-03xkr.mongodb.net:27017/main?ssl=true&replicaSet=Main-shard-0&authSource=admin&retryWrites=true

根据 MongoDB 的说法,SRV 可能由于 Mongoose 而无法工作。

关于node.js - 连接MongoDB Atlas时如何修复 'Error: querySrv EREFUSED'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55499175/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com