从Google App Engine连接到MongoDB Atlas

时间:2018-08-21 10:44:38

标签: node.js mongodb google-app-engine google-cloud-platform

我正在尝试在Google App Engine标准环境上设置API,但是在连接到远程MongoDB实例时遇到问题。

我在MongoDB Atlas上使用了一个免费的M0集群,所有IP都被列入了白名单。 Google App Engine防火墙规则允许来自所有IP地址的所有流量,以确保连接请求未被阻止。

但是,我无法连接到Mongo实例,并且出现以下错误:

ERROR db_connection querySrv ESERVFAIL <mongo-url>.gcp.mongodb.net

要连接到MongoDB实例,请使用Mongoose并执行以下操作:

const db = await mongoose.connect(uri, { useNewUrlParser: true });

但是db始终为null,因为我无法连接。是否可以通过App Engine Standard连接到MongoDB Atlas,还是必须使用Cloud Datastore?

3 个答案:

答案 0 :(得分:7)

我不得不使用旧版的地图集网址

enter image description here

答案 1 :(得分:1)

它适用于我使用较旧的驱动程序版本url: enter image description here

答案 2 :(得分:0)

您不必使用数据存储。您可以连接到Google服务器外部托管的mongoDB,其中有一些示例代码here。我还希望您参考this documentation,以了解如何从标准环境连接到外部数据库。 确保防火墙处于打开状态是必要的(并且您已经做到了,所以很好)。 在here中列出了MongoDB Node.JS驱动程序,具体取决于您使用的版本,连接示例中提供了不同的参考文档(所有参考文件均在同一链接上列出)。