react-native - 对应用程序设计感到困惑(应用程序架构师?)
问题描述
因此,我正在构建一个移动应用程序,但由于我对所有东西的适合位置或事物如何相互通信感到困惑,所以我碰壁了。让我扩展一下
部分:
- 移动应用(React Native)
- 本地存储(Redux-presist)
- 云存储 (AWS)
- 提交信息的后端管理 UI 被推送到所有移动应用程序(比如添加了新的锻炼或设备)(反应)
- 数据库(Heroku-postgresql)
- API(我知道我需要一个,但仅此而已)
这是我到目前为止的图表,但我相信 Web 应用程序(管理 UI)被排除在外(发布在下面)。我将简单地提出这个问题,而不会扩展我正在研究的内容以将混淆降至最低。
- 管理 UI 将如何将更新的项目发送到所有移动应用程序?
- 移动应用程序如何连接到 Heroku 上的 postgresql?
- Web 应用程序(管理 UI)如何连接到 Heroku 上的 postgresql?
- 什么是客户端库?
- 连接到服务的定义是什么?
- API是否只适合应用的移动端(是这个节点还是express js)?
- 我知道我需要 Node 或 express JS,但我不知道它们是用于两端还是仅用于一端?
我知道这些是基本问题,但我自己很困惑,我将不胜感激任何指导。
解决方案
也许这个解释会有所帮助......
首先,您需要 3 台“计算机”:
- 第一台计算机是运行您的应用程序的手机
- 第二台计算机是运行 NodeJS/Express 的中央服务器
- 第三台计算机正在运行您的数据库。
为了让您的应用程序正常工作,您需要“连接”所有三台计算机以相互“交谈”。对于移动应用程序和服务器之间的通信,我建议使用简单的 HTTP 来处理使用 Fetch API 的通信.fetch()
。
就您的数据库而言,手机根本不会与数据库“对话”。与数据库的所有通信都将由您的服务器处理。例如,如果您需要数据库中的一些信息,您的 NodeJS/Express 服务器将使用数据库驱动程序/库查询数据库,然后将该信息发送回手机。(注意,有时人们在与 NodeJS/Express 相同的机器上运行数据库,但通常数据库会在它自己的机器上运行。)
最后,不要担心“将信息从服务器推送到手机”。相反,请尝试遵循这种模式。电话向服务器询问一些信息,服务器向数据库询问答案,然后服务器响应电话完成 HTTP 请求。整个过程看起来像这样:移动应用程序发出.fetch()
请求,服务器响应响应。就手机而言,它不需要知道数据库存在。而且就数据库而言,它不需要知道手机是否存在。
如果您发现自己在苦苦挣扎,我建议您阅读一本关于 NodeJS 和 Express 的书,并涉足一点全栈 Web 开发。您构建的示例 Web 应用程序将具有服务器“吐出”HTML 或 JSON 数据。对于您的移动应用程序,您需要输出 JSON。使用 NodeJS/Express 启动并运行后,您可以将您的 Web 应用程序替换为您的移动应用程序。
我希望我的回答可以帮助您指出正确的方向。构建一个完整的堆栈应用程序涉及很多活动部分,没有一个是真正自我解释的。
推荐阅读
- javascript - 不知道为什么我会收到这个 TypeError
- amazon-web-services - 使用 Map 类型开始执行状态机
- python - python 是否无法识别我在 if 语句中使用的变量,该变量也用于 for 中?
- java - MongoRepository 查询日期是否在上周内
- python - 添加到文件时如何从字符串中删除''引号和方括号[]
- jmeter - JMeter - Web 报告 - 随时间变化的响应时间仅显示平均值
- javascript - 使用 jQuery 计时 css 动画循环
- sql - 使用 dbplyr 检查记录是否存在
- python - 是否可以将异步函数作为可调用参数?
- python - 无法让 pip 和 setuptools 同意