我的连接代码在下面输入。我正在尝试连接到MongoDB atlas免费共享群集,并且我一直收到错误消息,说第一次无法连接到服务器。
const express = require("express");
const app = express();
const morgan = require("morgan");
const bodyParser = require("body-parser");
const mongoose = require("mongoose");
mongoose.Promise = require('bluebird');
const productRoutes = require("./api/routes/products");
const orderRoutes = require("./api/routes/orders");
mongoose.connect(
"mongodb://username:password6@cluster0-shard-00-00-3xdjv.mongodb.net:27017,cluster0-shard-00-01-3xdjv.mongodb.net:27017,cluster0-shard-00-02-3xdjv.mongodb.net:27017/test?ssl=true&replicaSet=Cluster0-shard-0&authSource=admin",
{
useMongoClient: true
}
) .then(() => { // if all is ok we will be here
return server.start();
})
.catch(err => { // we will not be here...
console.error('App starting error:', err.stack);
process.exit(1);
});
有人可以解释为什么我一直收到这个错误:
应用启动错误:
MongoError:第一次连接时无法连接到服务器[cluster0-shard-00-00-xxjj.mongodb.net:27017] [MongoError:getaddrinfo EAI_AGAIN cluster0-shard-00-00-3xdjv.mongodb.net:27017] .....
答案 0 :(得分:0)
在意识到我已经建立了仅允许来自某个IP的连接的网络访问规则之前,我遇到了同样的问题。删除该限制并添加新规则以允许从任何位置进行所有连接后,问题消失了
我的数据源配置如下:
"mongodb-atlas": {
"url": "mongodb+srv://dbuser:PaSsWOrd@cluster0-oxxxb.gcp.mongodb.net/test?retryWrites=true&w=majority&authSource=admin",
"name": "mongodb-atlas",
"connector": "mongodb",
"database": "admin"
}