我是 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
在 QueryReqWrap.onresolve [未完成] (dns.js:199:19)
错误号:'EREFUSED',
代码:“EREFUSED”,
系统调用:'querySrv',
主机名:'_mongodb._tcp.main-03xkr.mongodb.net'}
我尝试过连接到mongodb://localhost:27017/main
, 但是这个does看起来工作。
这是相关代码:
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 而无法工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)