【问题标题】:React Native - connect to PostgreSQL databaseReact Native - 连接到 PostgreSQL 数据库
【发布时间】:2016-01-25 15:14:49
【问题描述】:

我想将 React Native 连接到外部数据库,如 PostgreSQL、MySQL 或其他数据库。这可能吗?

但首先让我告诉你一些关于我的计划的事情: 我将为多个安装开发我的应用程序(多个设备 - 一个设备上的一个安装)。所有设备都连接到由 Windows 安装(服务器)提供的本地网络。在服务器上运行一个数据库 (PostgreSQL),我想用我的 all 设备连接到这个数据库。 服务器(或者实际上是它的数据库)应该存储任务并且每个设备应该在本地访问这些任务(读取和写入)。

我还有一些其他的想法,比如简单的 SMB-XML 文件存储(但存在冲突问题)和 SMB 共享文件上的 SQLite 数据库 - 但 SQLite 的网站告诉我这不会避免多次访问的问题。因此,我需要另一个 本地 解决方案。这让我提供了一个可从本地网络访问的数据库。

如果有人能说明如何解决此问题,我将不胜感激。

谢谢!

【问题讨论】:

  • 这听起来像是开发 REST API 并通过它向客户端设备公开数据和任何远程过程调用的好案例。通常这就是这样做的方式,是否有理由将其排除在外?你可以使用 react-native 的网络栈来发送和获取数据,facebook.github.io/react-native/docs/network.html

标签: database postgresql react-native smb local-network


【解决方案1】:

为了直接从 react native 访问数据库,您需要一个纯 JavaScript 数据库驱动程序。一个快速的谷歌搜索产生了一个用于 PostgreSQL 的 JavaScript 驱动程序 (https://github.com/brianc/node-postgres) 但它是为 Node.js 编写的,我怀疑它是否可以在 JavaScript Core 或 Chrome 中工作。 CouchDB 通过 REST API 工作,它实际上是供多个客户端直接访问的。有多个可用的 JavaScript 客户端。

但是为什么您希望您的客户直接连接到数据库?您所描述的似乎是一个非常标准的应用程序模型。您只需要在您的服务器上运行一个后端与数据库通信并提供一个 API。良好的旧网络开发。如果你想在后端编写 JavaScript,我建议使用 Node.js

如果您真的不能或不想编写后端,有几种服务可以提供 API 用于数据存储甚至一些数据处理。但当然他们不是本地的。例如,看看 parse.com 或 firebase.com。

【讨论】:

  • 非常感谢您的建议。关键是我将连接到提供数据的软件。它将其存储在其数据库(PostgreSQL)中。该软件安装在我们(人类)客户的计算机上。因此,我为每个客户端安装一个 API 是非常浪费的,直接访问数据库会更符合要求。你会建议为此编写一个自己的 React Native 组件,还是你知道另一个更好的解决方案?除了我目前遵循的解决方案之外,我仍然愿意接受其他解决方案。谢谢
  • 仅供我理解。您的每个客户都有一个在客户本地网络中运行的数据库。每个客户只能通过应用程序连接到他/她自己的本地数据库?
  • 不,不直接。该软件提供数据库(给定)。应用程序应该访问这些数据。粗略地说,应用程序应该呈现数据,软件维护数据。例如:在软件中,您可以输入翻译并管理语言。该应用程序仅显示翻译以及何时翻译过时 - 它可以访问数据库并设置“可能已过时”标志。因此,服务器需要对数据库的读取和写入权限,并且应用程序还需要读取(简单存在)和写入权限(例如,对于此标志设置)。 PS:示例虚构,但有助于 2 理解
  • 而“软件”是 Web 应用程序还是本地应用程序?数据库服务器在它自己的机器上运行?我真的认为您将无法绕过使用应用程序服务器和数据库服务器来发布您的软件。例如,Node.js 确实非常轻量级。另一个想法是桥接 react-native 以使用 iOS 或 Android 的本机数据库驱动程序。在 Android 上,您实际上可以使用常规的 ODBC 驱动程序。但我发现有几个线程对此发出警告(例如stackoverflow.com/questions/10435609/…)
猜你喜欢
  • 2014-03-04
  • 1970-01-01
  • 2017-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-30
  • 2020-12-15
相关资源
最近更新 更多