Javascript 尝试连接到Mongolab时正在点击ENOTFOUND?

Javascript 尝试连接到Mongolab时正在点击ENOTFOUND?,javascript,node.js,mongodb,express,mongoose,Javascript,Node.js,Mongodb,Express,Mongoose,我从mongolab atlas得到了一个连接字符串 mongodb+srv://admin:xxxxx@cluster0.bnsni.mongodb.net/test?retryWrites=true&w=majority 然而,当我尝试使用ExpressMongoose连接它时,我得到了下面的错误 连接到MongoLab时出错:错误:querySrv ENOTFOUND\u mongodb.\u tcp.cluster0.bnsni.mongodb.net 在QueryReqWra

我从mongolab atlas得到了一个连接字符串

mongodb+srv://admin:xxxxx@cluster0.bnsni.mongodb.net/test?retryWrites=true&w=majority
然而,当我尝试使用ExpressMongoose连接它时,我得到了下面的错误

连接到MongoLab时出错:错误:querySrv ENOTFOUND\u mongodb.\u tcp.cluster0.bnsni.mongodb.net 在QueryReqWrap.onresolve[as oncomplete](dns.js:203:19){ 错误号:未定义, 代码:“ENOTFOUND”, 系统调用:“querySrv”, 主机名:'\u mongodb.\u tcp.cluster0.bnsni.mongodb.net' } (节点:52093)未处理的PromiserEjectionWarning:错误:querySrv ENOTFOUND\u mongodb.\u tcp.cluster0.bnsni.mongodb.net 在QueryReqWrap.onresolve[as oncomplete](dns.js:203:19) (节点:52093)未处理的PromisejectionWarning:未处理的承诺拒绝。此错误源于在没有catch块的异步函数中抛出,或者拒绝未使用.catch()处理的承诺。要在未处理的承诺拒绝时终止节点进程,请使用CLI标志
--unhandled rejections=strict
(请参阅)。(拒绝id:1)

在Mongolab上,我选择了nodejs版本
3.6或更高版本

下面是连接到db的代码

const MONGO_URI =
  "mongodb+srv://admin:xxxxxx@cluster0.bnsni.mongodb.net/test?retryWrites=true&w=majority";
if (!MONGO_URI) {
  throw new Error("You must provide a MongoLab URI");
}

mongoose.Promise = global.Promise;
mongoose.connect(MONGO_URI);
mongoose.connection
  .once("open", () => console.log("Connected to MongoLab instance."))
  .on("error", (error) => console.log("Error connecting to MongoLab:", error));

您可以尝试通过shell连接到Mongo服务器吗?只是为了隔离问题
const MONGO_URI =
  "mongodb+srv://admin:xxxxxx@cluster0.bnsni.mongodb.net/test?retryWrites=true&w=majority";
if (!MONGO_URI) {
  throw new Error("You must provide a MongoLab URI");
}

mongoose.Promise = global.Promise;
mongoose.connect(MONGO_URI);
mongoose.connection
  .once("open", () => console.log("Connected to MongoLab instance."))
  .on("error", (error) => console.log("Error connecting to MongoLab:", error));