Node.js 我可以从localhost连接到google cloud部署的mongoDB,但在应用程序引擎上部署时不能从同一个应用程序连接
我的应用程序是使用Mongoose为db编写的React and Express。我在google计算引擎上部署了一个bitnami mongoDB实例。现在,我正在尝试将服务器部署到应用程序引擎上。当我在本地运行我的应用程序时,它可以很好地连接到数据库(我可以添加内容并查看它)。但是,当我在google cloud shell中执行npm时,会出现以下错误:Node.js 我可以从localhost连接到google cloud部署的mongoDB,但在应用程序引擎上部署时不能从同一个应用程序连接,node.js,mongodb,reactjs,google-app-engine,google-compute-engine,Node.js,Mongodb,Reactjs,Google App Engine,Google Compute Engine,我的应用程序是使用Mongoose为db编写的React and Express。我在google计算引擎上部署了一个bitnami mongoDB实例。现在,我正在尝试将服务器部署到应用程序引擎上。当我在本地运行我的应用程序时,它可以很好地连接到数据库(我可以添加内容并查看它)。但是,当我在google cloud shell中执行npm时,会出现以下错误: 'failed to connect to server [35.196.182.249:27017] on first connect
'failed to connect to server [35.196.182.249:27017] on first connect [MongoError: connection 0 to 35.196.182.249:27017 timed out]' }
(node:1310) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): MongoError: failed to connect to server [35.196.182.249:27017] on first connect [MongoError: connection 0 to 35.196.182.249:27017 timed out]
以下是我要连接的代码:
mongoose.connect(process.env.MONGODB_URI,{
useMongoClient: true
}).catch(function(err){
console.log(err)
});
其中MONGODB\u URI=mongodb://root:password@二十、 XXX.XXX.XXX:27017
,
password
是我从计算引擎获得的密码,XX.XXX.XXX.XXX
是计算引擎提供的外部IP。
我在本地连接和google cloud shell中使用相同的URI,但它仅从localhost连接。我也尝试过在URI中进行硬编码,但没有成功。有什么想法吗?您是否从计算引擎实例上的外部IP访问过?您是否在mongod配置中为实例指定了?因为逻辑上说,计算实例需要您显式地允许访问,而不是“向世界开放”,出于同样的原因,
mongod
默认设置为127.0.0.1
。我还没有这样做,所以几乎可以肯定是这样。对不起,我对这一切都不熟悉。您绑定了服务器的IP,对吗?但是,如果我正在部署我的服务器,并且它试图连接,那么在我知道要绑定到的IP地址之前,它将运行并且无法连接,我的知识差距是什么?您可以绑定到0.0.0
IP,默认情况下,将允许所有人都连接到它。@colinlmacleod1Hi Colin。你找到解决办法了吗?我也有同样的问题。@NeilLunn我的mongodb uri不是指由Google Compute Engine托管的uri,但我有这个问题。我的应用程序引擎实例上的Mongoose一直超时,但我可以在本地计算机上正常连接。您是否从计算引擎实例上的外部IP访问了?您是否在mongod配置中为实例指定了?因为逻辑上说,计算实例需要您显式地允许访问,而不是“向世界开放”,出于同样的原因,mongod
默认设置为127.0.0.1
。我还没有这样做,所以几乎可以肯定是这样。对不起,我对这一切都不熟悉。您绑定了服务器的IP,对吗?但是,如果我正在部署我的服务器,并且它试图连接,那么在我知道要绑定到的IP地址之前,它将运行并且无法连接,我的知识差距是什么?您可以绑定到0.0.0
IP,默认情况下,将允许所有人都连接到它。@colinlmacleod1Hi Colin。你找到解决办法了吗?我也有同样的问题。@NeilLunn我的mongodb uri不是指由Google Compute Engine托管的uri,但我有这个问题。我的应用程序引擎实例上的Mongoose一直超时,但我可以在本地机器上正常连接。