正如所指出的,您可以按照以下说明进行操作https://cloud.google.com/nodejs/getting-started/deploy-mongodb https://cloud.google.com/nodejs/getting-started/deploy-mongodb使用以下命令配置 Google App Engineconfig.json
file. (update: 链接不再有效,请尝试:https://cloud.google.com/community/tutorials/nodejs-mongodb-on-appengine https://cloud.google.com/community/tutorials/nodejs-mongodb-on-appengine反而)
既然你正在使用mongoose
模型将决定集合的用途。即保存(),更新()。
如果您使用以下方式连接node.js
直接,您还可以在代码中轻松更改数据库/集合。
当尝试连接到上述 URI 时,我的 App Engine 实例和本地计算机有什么不同?
谷歌应用引擎 https://cloud.google.com/appengine/是一个完全托管的平台。从某种意义上来说是无服务器 https://cloud.google.com/serverless/,您正在利用一组工作人员来扩大/缩小您的应用程序的规模。当请求进入您的应用程序时,池中的实例将处理该任务/请求。
与您的本地计算机不同,本地计算机的请求也将由您的计算机处理。
您可能还会发现Google 应用引擎常见问题解答 https://cloud.google.com/appengine/kb/有用。
我选择 mlab 在 GCP 上托管它这一事实重要吗?
不是很多。正如您所提到的,您目前使用的是 GCP 的 SandBox(免费)计划。目前,这会将您的 MongoDB 实例部署在us-central1
地区,没有其他地区选择。不同云提供商之间的 RAM/存储/价格也略有不同。
您可以通过选择 GAE 来减少网络延迟us-central1
地区也是如此。
问题的根本原因到底是什么?
如果没有正确的堆栈跟踪或描述超时问题的错误日志,则很难确定问题是什么。
常见node.js
项目包含一个名为的 JavaScript 文件config.js
下面有一行:
nconf.argv()
.env()
.file({ file: path.join(__dirname, 'config.json') })
.defaults()
基本上尝试按以下顺序读取配置:
- 命令行参数
- 环境变量
- 配置文件(指定路径)
- 默认值
也可以看看Google 云平台:nodejs 入门 https://github.com/GoogleCloudPlatform/nodejs-getting-started
Also GoogleCloudPlatform/nodejs-docs-samples/appengine/mongodb https://github.com/GoogleCloudPlatform/nodejs-docs-samples/tree/master/appengine/mongodb项目为例。