8

拥有类似于PouchDB的东西会很棒。

当前的键值存储(AsyncStorage)肯定不足以存储和查询数据。

4

5 回答 5

6

您可以将asyncstorage-down与 PouchDB 一起使用。通常在 Node.js 中使用 LevelDOWN 适配器的方法是这样的:

var PouchDB = require('pouchdb');
var db = new PouchDB('mydb', {db: require('asyncstorage-down')})

不过,我还没有测试过。

编辑:你很幸运;最近在这方面做了很多工作:pouchdb-async-storage。很快就会有一篇关于如何让它工作的博客文章。

于 2015-05-02T19:08:12.013 回答
1

PouchDB 是为浏览器构建的,因此它可以在 React Native 上运行一点点努力。

你见过https://github.com/almost/react-native-sqlite吗?

于 2015-05-02T02:21:22.650 回答
1

我在让 PouchDB 在 react-native 上工作时遇到了一些问题,但不想安装 SQLLite。所以我为异步存储构建了一个适配器。

GitHub npm

它为 React 填充缺失的包 + 添加了一个基于“asyncstorage-down”的异步存储适配器。确实有帮助。

于 2016-04-18T08:45:14.647 回答
1

我尝试使用 Stockulus 的异步存储适配器 ( https://github.com/stockulus/pouchdb-react-native ),但在复制到远程 CouchDB 服务器时遇到问题。

现在我正在使用 React 本机 SQLite 存储 ( https://github.com/andpor/react-native-sqlite-storage ) 和 PouchDB 自定义构建模式 ( https://pouchdb.com/2016/06/06/introducing- pouchdb-custom-builds.html)像这样:

'use strict';

import PouchDB from 'pouchdb-core'

// POLYFILLS - adapted from https://github.com/pouchdb/pouchdb/issues/3787#issuecomment-234618747
global.Buffer = global.Buffer || require('buffer').Buffer;
global.atob = global.atob || require('atob');
global.btoa = global.btoa || require('btoa');
require('blob-polyfill');

import SQLite from 'react-native-sqlite-storage';
global.openDatabase = SQLite.openDatabase; // Expose for websql adapter
GLOBAL.openDatabase = SQLite.openDatabase;

PouchDB
    .plugin(require('pouchdb-adapter-websql'))
    .plugin(require('pouchdb-adapter-http'))
    .plugin(require('pouchdb-replication'))

export default PouchDB

我知道全球是丑陋的。我们刚开始使用它,复制效果更好。我们还必须 polyfill 一堆节点的东西。这由 pouchdb-core 使用,但未指定为 pouchdb-core 中的依赖项。希望得到反馈。

目前使用这些包:

"events": "^1.1.1",
"pouchdb-adapter-http": "6.0.6",
"pouchdb-adapter-websql": "6.0.6",
"pouchdb-core": "6.0.6",
"pouchdb-replication": "6.0.6",
"atob": "^2.0.3",
"blob-polyfill": "^1.0.20150320",
"btoa": "^1.1.2",
"buffer": "^5.0.0",

谢谢

于 2016-10-12T15:57:25.433 回答
0

您可以在 SQLLite 上轻松实现 PouchDB - 它有多种配置选择。您可能需要一个 SQLite 插件才能使其工作。事实上,我已经为 Cordova 做过这个,而且效果很好。我相信 PouchDB(它是纯 JavaScript,因此可以开箱即用地用于 ReactNative)有一个适配器可以与功能齐全的 SQLite3 插件一起使用。

此插件的 React Native 版本可在此处获得:

https://github.com/andpor/react-native-sqlite-storage

原始的 Cordova 插件链接也可以在项目 github 上找到。

于 2015-10-30T22:03:35.327 回答