如何解决我无法从a2hosting共享NodeJS托管连接Atlas MongoDB Cloud
var express = require("express");
var mongoose = require("mongoose");
const uri = "<mongodb atlas connection string...>";
var app = express();
var port = 3000;
app.get("/sam/",(req,res) => {
mongoose.Promise = global.Promise;
mongoose.connect(uri,{
useNewUrlParser: true,useCreateIndex: true,useUnifiedTopology: true
},(err) => {
if (!err) {
return res.status(200).send("I am Working");
}
else {
return res.status(200).send(err);
}
});
});
app.listen(3000,() => {
console.log("Server listening on port " + port);
});
形成本地开发环境,我可以访问并正常工作。
一旦我部署到 a2hosting Node JS共享主机,我将收到以下错误消息:
{“消息”:“无法连接到MongoDB Atlas集群中的任何服务器。一个常见的原因是您试图从未列入白名单的IP访问数据库。请确保您当前使用的是IP地址在您的Atlas群集的IP白名单中:https://docs.atlas.mongodb.com/security-whitelist/","reason":{"type":"ReplicaSetNoPrimary","setName":null,"maxSetVersion":null,"maxElectionId":null,"servers":{},"stale":false,"compatible":true,"compatibilityError":null,"logicalSessionTimeoutMinutes":null,"heartbeatFrequencyMS":10000,"localThresholdMS":15,"commonWireVersion":null}}
解决方法
我无法从A2hosting连接Atlas Cloud MongoDB,为此,我提出了票证并提供了端口号和连接详细信息。
他们通过打开所有请求的和打开的与Atlas MongoDB相关的端口来迅速解决我的问题,并确认此时已明智地打开了防火墙。
现在,我可以从NodeJS共享A2hosting托管连接Atlas Cloud MongoDB。
注意:出于安全原因,我从Atlas Mongo DB Network Permission中删除了0.0.0.0/0,并添加了共享的托管IP地址。
我希望本文能帮助许多开发人员部署NodeJS和Atlas Cloud Mongo DB应用程序。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。