2015-04-04 32 views

回答

1

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

6

您或許可以在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

0

您可以在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

1

我有一些問題讓PouchDB工作在react-native上,但不想安裝SQLLite。所以我構建了一個適用於異步存儲的適配器。

GitHub npm

它Polyfills缺少的軟件包反應+增加了關於「asyncstorage向下」異步存儲適配器基地。恰當的幫助。

1

我嘗試使用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", 

感謝

相關問題