对应用程序设计感到困惑(应用程序架构师?)

Confused about the application design (app architect?)

所以我正在构建一个移动应用程序,但我遇到了瓶颈,因为我对一切适合的地方或事物如何相互沟通感到困惑。让我详细说明一下

零件:

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

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

我知道这些是基本问题,但我自己也很困惑,非常感谢任何指导。

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

首先你需要3个'computers':

  1. 第一台计算机是 phone 您的应用所在的移动设备 运行ning
  2. 第二台计算机是您的中央服务器,它是 运行ning NodeJS/Express
  3. 第三台计算机正在运行创建您的数据库。

要使您的应用程序正常运行,您需要 'wire-up' 所有三台计算机相互 'talk'。对于移动应用程序和您的服务器之间的通信,我建议使用简单的 HTTP 来处理使用 Fetch API .fetch().

的通信

就您的数据库而言,移动 phone 根本不会 'talking' 到数据库。与数据库的所有通信都将由您的服务器处理。例如,如果您需要数据库中的一些信息,您的 NodeJS/Express 服务器将使用数据库 driver/library 查询数据库,然后将该信息发送回 phone。 (请注意,有时人们 运行 数据库与 NodeJS/Express 在同一台机器上,但通常数据库会 运行 在它自己的机器上。)

最后,不要担心 'pushing information from the server to the phone.' 相反,请尝试遵循此模式。 phone 向服务器询问一些信息,服务器向数据库询问答案,然后服务器响应 phone 完成 HTTP 请求。整个过程看起来像这样:移动应用程序发出 .fetch() 请求,服务器响应一个答案。就 phone 而言,它不需要知道数据库的存在。就数据库而言,它不需要知道 phone 存在。

如果您发现自己在苦苦挣扎,我建议您拿起一本关于 NodeJS 和 Express 的书,并涉足一点全栈 Web 开发。您构建的示例 Web 应用程序将具有服务器 'spit out' HTML 或 JSON 数据。对于您的移动应用程序,您需要吐出 JSON。起床 运行 NodeJS/Express 后,您可以将网络应用换成移动应用。

希望我的回答能帮助您指明正确的方向。构建一个完整的堆栈应用程序涉及很多活动部分,none 确实不言自明。