2017-08-25 135 views
0


我目前正在爲一家初創公司工作,該公司要求我使用pouchDB開發一個離線應用程序。這個pouchdb用於存儲用戶輸入的數據。
脫機應用程序正常工作。現在,我必須在在線應用程序中添加一個功能才能同步dbs。登錄後,在線應用程序必須檢查數據是否存儲在正在連接的設備上的pouchdb中,如果檢查發現數據,則在線應用程序必須提取該數據。
我有以下問題:在線應用程序無法獲取設備上存儲的本地數據庫(即使我在同一瀏覽器中運行這兩個應用程序)。同步PouchDB與服務器

我在另一個StackOverflow文章中解釋了我的問題,但是這個表述不太好,所以我認爲這是發佈另一個問題的好消息。

我的舊後here

我在幾天就這個問題工作,我沒有太多的時間,直到我必須完成我的工作,如果有人知道如何解決這個問題,它還是非常不錯的: )

回答

2

我覺得缺乏迴應是因爲讀者不清楚問題是什麼。在你的另一篇文章中,聽起來好像你在說如果你寫了一個新的條目到本地數據庫,你不能再次檢索它。在這個問題中,聽起來就像一旦你有一個本地數據庫條目,你不能將它複製到服務器數據庫 - 是這樣嗎?

On the PouchDb front page是寫入本地數據庫然後將其複製到服務器的簡短示例。就像這樣:

var db = new PouchDB('dbname'); 

db.put({ 
    _id: '[email protected]', 
    name: 'David', 
    age: 69 
}); 

db.replicate.to('http://example.com/mydb'); 

(例子假設任何人都可以更新數據庫,即沒有安全 - 否則,你需要一個用戶名和密碼as explained here

這是否對你的工作?如果不是,你可以說會發生什麼?

檢查本地是否有數據應該是看你的本地數據庫是否有任何條目(db.info將是一個開始,因爲它返回一個文檔數)。然後您可以使用db.replicate調用複製本地數據庫。

這有幫助嗎?

+1

我認爲這不是TS的問題,他在與本地在線(實際同步的)pouchdb(例如localhost:3000而不是localhost:9000)不同的主機上運行本地脫機pouchDB。這個問題是pouchDB根據name + host來存儲信息。否則,你可能很容易在名稱衝突中運行。所以問題是即使這兩個數據庫共享相同的名稱,可以連接到互聯網的應用程序使用不同的數據庫(但具有相同的名稱)。結果他無法同步他的離線數據庫的數據。 – user3492940