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

时间:2020-04-30 19:41:29

标签: react-native heroku web-applications

因此,我在构建一个移动应用程序时遇到了麻烦,因为我对一切适合的地方或事物之间如何通信感到困惑。让我进一步说明

零件:

  • 移动应用程序(React Native)
  • 本地存储(Redux-presist)
  • 云存储(AWS)
  • 提交信息的后端管理UI推送到所有移动应用程序(例如添加了新的锻炼或设备)(反应)
  • 数据库(Heroku-postgresql)
  • API(我知道我需要一个,但仅此而已)

这是我到目前为止的图表,但我认为Web应用程序(管理UI)已被排除在外(在下面发布)。我只想问这个问题,而又不扩大我的研究范围,以将混乱降到最低。

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

我知道这些是基本问题,但我感到困惑,希望能提供一些指导。

enter image description here

1 个答案:

答案 0 :(得分:1)

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

首先,您需要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应用替换为移动应用。

我希望我的回答能帮助您指出正确的方向。构建一个全栈应用程序涉及很多活动部分,但这些都不是真正的自我解释。