React Native - 连接到 PostgreSQL 数据库

5
我想使用React Native连接一个外部数据库,例如PostgreSQL、MySQL或其他任何数据库。这可能吗?
但首先请允许我向您介绍我的计划:我将为多个设备开发应用程序(一个设备上只安装一个应用)。所有设备都通过由Windows安装(服务器)提供的本地网络连接。在服务器上运行着一个数据库(PostgreSQL),我希望能够与所有我的设备连接到该数据库。 服务器(或实际上是其数据库)应该存储任务,每个设备都应该可以本地访问这些任务(读写)。
我还有一些其他想法,比如简单的SMB-XML文件存储(但是会存在冲突问题)和SMB共享文件上的SQLite数据库 - 但是SQLite的网站指出这不会避免多重访问问题。因此,我需要另一个本地解决方案。这就促使我提供一个可以从本地网络访问的数据库。
如果有人知道如何解决这个问题,我将非常感激。
谢谢!

这似乎是开发REST API并通过它向客户端设备公开数据和任何远程过程调用的好案例。通常情况下,就是这样完成的,有理由排除它吗?您可以使用React Native的网络堆栈来发送和获取数据, https://facebook.github.io/react-native/docs/network.html - mmccaff
1个回答

3
为了直接从React Native访问数据库,您需要一个纯JavaScript数据库驱动程序。快速搜索后,找到了一个PostgreSQL的JavaScript驱动程序(https://github.com/brianc/node-postgres),但它是为Node.js编写的,我怀疑它是否能在JavaScript Core或Chrome中工作。CouchDB通过REST API工作,实际上是为多个客户端的直接访问而设计的。有多个可用的JavaScript客户端。
但是为什么要让客户端直接连接到数据库呢?您描述的似乎是一个非常标准的应用程序模型。您只需要在服务器上运行一个后端,与数据库通信并提供API即可。这是老式的Web开发。如果您想在后端编写JavaScript,建议使用Node.js。
如果您真的不能或不想编写后端代码,则有几个服务提供数据存储和一些数据处理的API。但当然它们不是本地的。例如,可以查看parse.com或firebase.com。

非常感谢您的建议。关键是我将连接提供数据的软件。它将数据存储在其数据库(PostgreSQL)中。该软件安装在我们(人类)客户的计算机上。因此,为每个客户安装API非常浪费,直接访问数据库会更加符合要求。您是否建议编写自己的React Native组件,还是您知道其他更好的解决方案?我仍然开放接受比我目前遵循的其他解决方案。谢谢。 - CapCa
1
你们在每个客户的本地网络中运行着一个数据库,每个客户只通过应用程序连接到自己的本地数据库,对吗? - d-vine
不,不能直接访问。软件提供数据库(已给出)。应用程序应该访问这些数据。粗略地说,应用程序应该呈现数据,而软件则维护数据。例如:在软件中,您可以输入翻译并管理语言。应用程序只需显示翻译,当翻译过期时 - 它可以访问数据库并设置一个标志“可能已过期”。因此,服务器需要对数据库具有读写权限,应用程序也需要读取(简单现在时)和写入权限(例如,用于此标志设置)。PS:示例虚构但有助于理解。 - CapCa
“软件”是Web应用程序还是本地应用程序?DB服务器运行在自己的机器上吗?我真的认为你无法避免使用应用程序服务器和DB服务器来发布你的软件。例如,Node.js非常轻量级。另一个想法是将React Native桥接到iOS或Android的本地数据库驱动程序。在Android上,您实际上可以使用常规ODBC驱动程序。但我发现有几个线程警告这样做(例如http://stackoverflow.com/questions/10435609/driver-jdbc-postgresql-with-android) - d-vine

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接