Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 我可以从localhost连接到google cloud部署的mongoDB,但在应用程序引擎上部署时不能从同一个应用程序连接_Node.js_Mongodb_Reactjs_Google App Engine_Google Compute Engine - Fatal编程技术网

Node.js 我可以从localhost连接到google cloud部署的mongoDB,但在应用程序引擎上部署时不能从同一个应用程序连接

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

我的应用程序是使用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 [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一直超时,但我可以在本地机器上正常连接。