我试图连接到我刚刚创建的mongodb地图集,但出现此错误:
{MongoError:首次连接[MongoError:getaddrinfo ENOTFOUND mongodbarcode-tt80c.mongodb.net mongodbarcode-tt80c.mongodb.net:27017]时,无法连接到服务器[mongodbarcode-tt80c.mongodb.net:27017]
这是我的代码:
import mongoose from 'mongoose';
import config from '../config/index';
mongoose.Promise = global.Promise;
const connectToDb = async () => {
try {
await mongoose.connect(mongodb://test:fakepass@mongodbarcode-tt80c.mongodb.net/test?retryWrites=true, { useMongoClient: true });
console.log('Connected to mongo!!!');
}
catch (err) {
console.log(err);
// logger.error('Could not connect to MongoDB');
}
}
export default connectToDb;
另外,我添加了一个白名单IP地址:0.0.0.0/0,可以从任何地方进行连接,但是我总是会遇到相同的错误,请问有什么建议吗?
答案 0 :(得分:-1)
您需要从此处本地安装MongoDB服务:https://www.mongodb.com/download-center/community?jmp=docs
或者您可以从此处在云上使用猫鼬:https://www.mongodb.com/cloud/atlas
这2个解决方案为我解决了这个问题。 哟先做准备:
const mongoose = require('mongoose');
const url = 'mongodb+srv://user:password@cluster0-dkgsi.mongodb.net/test?retryWrites=true&w=majority';
const mongoOptions = {useNewUrlParser:true, useUnifiedTopology: true};
//this will start things from scratch
const state = {
db : null
};
然后您以这种方式进行连接: 网址是您在mongo地图集上建立帐户后得到的。
const connect = (cb) => {
if(state.db){
cb();
}else {
mongoose.connect(url ,mongoOptions, (err, client) => {
if(err)
cb(err);
else{
cb();
}
});
}
};
然后调用connect函数:
connect( (err)=>{
if (err){
console.log('failed to connect to the db');
console.log(err);
process.exit(1);
} else {
app.listen(3000, () =>{
console.log("connected, App listeining on port 3000");
}
);
}
}
);