【问题标题】:how to create a persistent offline database with electron and pouchdb如何使用 electron 和 pouchdb 创建一个持久的离线数据库
【发布时间】:2017-11-12 17:31:51
【问题描述】:

我将编写一个桌面应用程序,它应该能够在本地持久存储其海量数据。

我想用electron 编写那个应用程序。稍后,我想将该应用程序移植到移动设备上。我在这里尝试使用 nativescript 和 angular-advanced-seed,它试图使在不同平台上重用代码成为可能。

作为数据库工具,我想使用pouchdb,因为我不想让用户设置/安装一个额外的工具来为桌面应用程序单独运行一个数据库。

另外,我喜欢使用 pouchdb,因为它与 couchdb 有很好的同步功能,当需要与在线数据库同步时,我可能会在项目后期使用它。

现在我的问题

  1. 即使应用程序已被用户停止,我如何使用 pouchdb 在本地存储数据(它可能是超过本地存储限制的大量数据)。当用户下次启动桌面应用程序时,我需要在应用程序中加载该数据。我使用 leveldb 阅读了 pouchdb,但我找不到持久化的数据。

  2. 是否可以在电子应用程序中运行数据库,这样我就不需要在用户的 pc/移动应用程序上安装例如 mongodb?

  3. 如果有一个可以在移动设备 (ios/android) 上运行的解决方案,那就太好了,这样我也有离线功能,而无需使用不同的数据存储方法

  4. 是否有其他解决方案(组合)数据库工具来满足我的需求: A. 相同的海量数据离线存储能力,超过本地存储对桌面(电子)/移动(Android/IOS)的空间限制和 Web 和 B. 对在线挂件数据库(pouchdb/couchdb 或 minimongo/mongodb)的良好同步功能 C. 应用内数据库应具有与服务器数据库(minimongo/mongodb)相同的查询 api

提前感谢您的小费。

【问题讨论】:

  • 如果您能找到任何解决方案,请分享。我面临同样的问题?谢谢。

标签: mongodb couchdb electron pouchdb nosql


【解决方案1】:

Pouchdb-Server 工作。我有一个使用express-pouchdb 的应用设置。

'use strict'

console.log('Starting PouchDB...');

const express = require('express');
const PouchDB = require('pouchdb');
const app = express();

app.use('/', require('express-pouchdb')(PouchDB.defaults({prefix: '.db/'}), {
      overrideMode: {
        include: ['routes/fauxton']
      }
    })
);

app.listen(3000);

然后我就在您的index.html 文件中获取它。

<script type="text/javascript">require('./pouchdb-app.js');</script>

Electron 开始拉取 index.html 并为您启动 pouchdb。

目前,我正在尝试让rxdb 工作。

注意:

overrideMode: {
   include: ['routes/fauxton']
}

删除上面的生产。有关它的信息,请参阅fauxton


如果您查看 RxDB 的电子 example,您就会意识到。它将帮助您通过使用concurrently 仅运行 Pouchdb-Server(如果您不想要 express 应用程序)。

从示例中,package.json:

  "scripts": {
    "start": "concurrently \"npm run server\" \"npm run electron\"",
    "electron": "electron .",
    "server": "pouchdb-server --host 0.0.0.0 -p 10102 -m -d /tmp/pouchdb-server/ -n true"

然后,您可以使用 PouchDB 代替 Angular,只需执行与我在上面所做的相同的操作即可访问服务器。

【讨论】:

    【解决方案2】:

    听起来像 pouchdb-server 可以满足您的需求:https://github.com/pouchdb/pouchdb-server

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-08
      • 1970-01-01
      相关资源
      最近更新 更多