在 Meteor 的移动版本中使用外部 mongodb

Use external mongodb in mobile build of Meteor

我在很多地方看到,为了在 Meteor 应用程序中使用外部 Mongodb,您应该使用环境变量 MONGO_URL。但是,我正在构建我的应用程序以同时用作 Web 应用程序和移动应用程序(通过生成 apk)。

问题是,当我以 MONGO_URL='mongodb://user:pwd@path.mlab.com:9999/db' meteor 启动 meteor 时,它在我的电脑上运行良好。但是,不可能(我还没有找到任何方法)在移动设备上执行此操作。

那么,有人知道我如何在移动应用程序中使用外部 mongodb 吗?

谢谢!

对于移动 (cordova) meteor 应用程序,将该应用程序视为一个能够访问本机设备功能(相机、蓝牙...)的 Web 视图。由于该应用程序基本上是一个 Web 视图,因此与之关联的底层 mongodb 是相同的。如果您想要特定于移动设备的存储,请查看 GroundDB

对于您的情况,如果听起来您的移动应用在连接到您的服务器时遇到问题,最终不允许它从 mongoDB 中提取数据。确保在构建移动应用程序时,服务器指定了“--mobile-server”。此外,如果您 运行 在本地,请确保您的移动设备与您的计算机位于同一网络上,并且禁用任何可能不允许连接的防火墙。

在我看来,您对 Meteor 的工作方式以及更普遍的客户端-服务器架构感到困惑。

只有您的服务器可以访问您的数据库(无论是在同一台机器上还是在第三方提供商处),因此您可以准确控制您的客户可以访问的内容。

"Client" 是指您的访问者使用什么来访问您的应用程序,无论是通过浏览器的 Web 应用程序,还是通过 Cordova 包装器的移动应用程序。

所以您的移动应用程序只需要知道它必须连接到的服务器的 URL。这是在您执行 meteor build.

时由 --server 选项指定的

然后你的服务器需要知道如何访问外部MongoDB。这是您的 MONGO_URL 环境变量。在生产中,您将在服务器主机上设置此变量。每个提供商都提供不同的方法来配置这些环境变量,大多数时候都有一个图形管理面板。

请注意 Meteor 的工作方式,您可以使用同一台服务器同时支持您的 Web 应用程序和移动应用程序。

最后,您还可以使用 meteor run android 而不是 meteor 在移动设备上进行测试(或者使用 ios 而不是 Android,但您需要 Mac).当然,您仍然可以在测试时在 CLI 中指定 MONGO_URL 变量,就像您在浏览器上测试时所做的那样。