首页 > 解决方案 > 对应用程序设计感到困惑(应用程序架构师?)

问题描述

因此,我正在构建一个移动应用程序,但由于我对所有东西的适合位置或事物如何相互通信感到困惑,所以我碰壁了。让我扩展一下

部分:

这是我到目前为止的图表,但我相信 Web 应用程序(管理 UI)被排除在外(发布在下面)。我将简单地提出这个问题,而不会扩展我正在研究的内容以将混淆降至最低。

  1. 管理 UI 将如何将更新的项目发送到所有移动应用程序?
  2. 移动应用程序如何连接到 Heroku 上的 postgresql?
  3. Web 应用程序(管理 UI)如何连接到 Heroku 上的 postgresql?
  4. 什么是客户端库?
  5. 连接到服务的定义是什么?
  6. API是否只适合应用的移动端(是这个节点还是express js)?
  7. 我知道我需要 Node 或 express JS,但我不知道它们是用于两端还是仅用于一端?

我知道这些是基本问题,但我自己很困惑,我将不胜感激任何指导。

在此处输入图像描述

标签: react-nativeherokuweb-applications

解决方案


也许这个解释会有所帮助......

首先,您需要 3 台“计算机”:

  1. 第一台计算机是运行您的应用程序的手机
  2. 第二台计算机是运行 NodeJS/Express 的中央服务器
  3. 第三台计算机正在运行您的数据库。

为了让您的应用程序正常工作,您需要“连接”所有三台计算机以相互“交谈”。对于移动应用程序和服务器之间的通信,我建议使用简单的 HTTP 来处理使用 Fetch API 的通信.fetch()

就您的数据库而言,手机根本不会与数据库“对话”。与数据库的所有通信都将由您的服务器处理。例如,如果您需要数据库中的一些信息,您的 NodeJS/Express 服务器将使用数据库驱动程序/库查询数据库,然后将该信息发送回手机。(注意,有时人们在与 NodeJS/Express 相同的机器上运行数据库,但通常数据库会在它自己的机器上运行。)

最后,不要担心“将信息从服务器推送到手机”。相反,请尝试遵循这种模式。电话向服务器询问一些信息,服务器向数据库询问答案,然后服务器响应电话完成 HTTP 请求。整个过程看起来像这样:移动应用程序发出.fetch()请求,服务器响应响应。就手机而言,它不需要知道数据库存在。而且就数据库而言,它不需要知道手机是否存在。

如果您发现自己在苦苦挣扎,我建议您阅读一本关于 NodeJS 和 Express 的书,并涉足一点全栈 Web 开发。您构建的示例 Web 应用程序将具有服务器“吐出”HTML 或 JSON 数据。对于您的移动应用程序,您需要输出 JSON。使用 NodeJS/Express 启动并运行后,您可以将您的 Web 应用程序替换为您的移动应用程序。

我希望我的回答可以帮助您指出正确的方向。构建一个完整的堆栈应用程序涉及很多活动部分,没有一个是真正自我解释的。


推荐阅读