【发布时间】:2019-01-27 12:55:51
【问题描述】:
我正在尝试在 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 将始终为空,因为我无法连接。有没有办法从 App Engine Standard 连接到 MongoDB Atlas,还是我必须使用 Cloud Datastore?
【问题讨论】:
-
我对 Mongoose 的了解并不那么广泛,但是,您的 URI 不应该是
mongodb://username:password@host:port/database?options...之类的东西吗?就像提到的in here -
无法将 mongodb 与 Google App Engine 标准环境一起使用,Datastore 是唯一的选择。如果必须使用 mongodb,请移至 灵活的环境
-
@Mangu 这不是连接 uri,因此格式不同。我使用的连接 uri 确实使用了您指定的格式:)
-
@cheekujha 我明白了,谢谢你的回答!
-
@Mangu:是的,在 GCE 上是可能的。但在 GAE 上不可能
标签: node.js mongodb google-app-engine google-cloud-platform