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