我刚接触过MongoDB 4.0.6,并试图使用Node/Express.js将其实现到我的网站中,但是当我试图连接到mongodb+srv://${process.env.MONGOUSER}:${process.env.MONGOPASS}@main-03xkr.mongodb.net/main
时,我得到了以下错误:
{错误: querySrv EREFUSED _mongodb._tcp.main-03xkr.mongodb.net at QueryReqWrap.onresolve 不完全 errno:'EREFUSED',代码:'EREFUSED',syscall:'querySrv',主机名:'_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
});
});
});
那么,有没有人知道如何修复这个错误,或者解释一下这里发生了什么?
发布于 2019-04-11 18:28:18
如果遇到此错误,请为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可能因为猫鼬而无法工作。
发布于 2019-09-01 19:54:21
当我连接到Node
版本3.0 or later
时,我也遇到了同样的错误,我通过降级到2.2.12 or later
版本来解决这个错误:
发布于 2020-07-24 04:32:29
当您使用MongoDB地图集时,有时会发生此错误,并失去了您的互联网连接。您将无法访问数据库。
https://stackoverflow.com/questions/55499175
复制相似问题