是否有任何文件存储在原始的反应?

问题描述:

PouchDB类似的东西真是太棒了。是否有任何文件存储在原始的反应?

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

PouchDB是为浏览器而构建的,所以它可能会在React Native上工作一点点。

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

+0

是的,我见过。这不是文件存储。 – mrded 2015-05-02 15:52:21

+0

我可以问一下你可以用一个不能用SQLite做的文档存储来做什么? – 2015-11-03 02:35:21

+1

存储非结构化数据并能够轻松搜索这些数据的集合? – Moonwalker 2016-04-27 12:54:19

您或许可以在PouchDB中使用asyncstorage-down。通常the method for using LevelDOWN adapters in Node.js是像这样:

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

我没有测试过这一点,虽然。

编辑:好幸运,你;最近已经投入了大量的工作:pouchdb-async-storage。很快就会有一篇关于如何实现这一功能的博客文章。

+1

pouchdb-async-storage是否仍在维护?看起来在6个月内没有提交。我正在大量考虑在大规模反应本机应用程序中使用它,但我有点害怕pouchdb /反应本机的兼容性问题,我发现所有的网络。 – A2345sooted 2016-03-23 17:14:37

+1

(我是原作者)不,它不是超级维护。如果我有一些时间,我可能会改为使用SQLite路由,即https://github.com/nolanlawson/node-websql#custom-sqlite3-implementation与https://github.com/almost/react- native-sqlite(事实上它可能已经工作了)。 – nlawson 2016-03-29 14:37:25

您可以在SQLLite上轻松实现PouchDB - 它有几种配置选择。你可能需要一个SQLite插件来使它工作。事实上,我已经为科尔多瓦这样做了,而且效果很好。我相信PouchDB(这是纯粹的JavaScript,因此可以直接用于ReactNative),它有一个可以与全功能的SQLite3插件一起使用的适配器。

阵营这个插件的原生版本可以在这里找到:

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

原科尔多瓦插件的链接可以在GitHub上的项目也被发现。

+0

我必须拿回来。在JS方面似乎存在一系列需求问题,这使得基于PouchDB的解决方案现在不可行。 – Moonwalker 2015-11-02 14:55:08

+0

一些刚刚在npm上发布了React Native PouchDB模块,它使用react-native-sqlite-storage作为插件。 https://www.npmjs.com/package/react-native-pouchdb – Moonwalker 2016-04-27 12:53:28

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

GitHub npm

它Polyfills缺少的软件包反应+增加了关于“asyncstorage向下”异步存储适配器基地。恰当的帮助。

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

我现在用的阵营本地的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 

我知道全球是丑陋的。我们刚开始使用它,并且复制工作更好。我们还必须填充一堆节点的东西。这由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", 

感谢