簡體   English   中英

使用PouchDB無法將本地IndexedDB復制到遠程CouchDB

[英]Fail to replicate a local IndexedDB to a remote CouchDB using PouchDB

我在Ionic項目(Ionic 4.0.5)中使用PouchDB 7.0.0。

在提供程序中,我同時定義了本地和遠程數據庫:

@Injectable()
export class DatabaseProvider {

  constructor() {
    this.db = new PouchDB("mydb");
    this.remote = new PouchDB("http://<my_server_running_couchdb>/<remote_db_name>")

  }

本地數據庫作為IndexedDB實例存在於Chrome瀏覽器中。 但是,該問題也出現在Firefox中,因此它似乎不應該歸咎於瀏覽器。

遠程數據庫最初是空的,並且在CouchDB 2.1.2上運行。 它已經在我的服務器上創建,沒有設置管理員或成員,因此它應該是公開的,並允許未經身份驗證的請求。 順便說一下,還啟用了CORS。

在同一提供者中,我還定義了一種觸發從本地數據庫復制到遠程節點的方法:

  replicateLocalDBToRemote() {
    console.log("Replicating database...");
    this.db.replicate.to(this.remote).then(() => {
      console.log("Celebrate");
    }).catch(error => {
      console.error(error)
    })
  }

這里是什么調用replicateLocalDBToRemote拋出我

CustomPouchError {__zone_symbol__currentTask: e, result: {…}}
result:
doc_write_failures: 0
docs_read: 0
docs_written: 0
end_time: "2018-11-21T16:23:36.974Z"
errors: []
last_seq: 0
ok: false
start_time: "2018-11-21T16:23:36.874Z"
status: "aborting"

恐怕我不能稱其為不言自明的信息。

您對問題的根本原因有何猜測?

編輯:在github上通過PouchDB存儲庫進行爬網之后,我發現此條目可能涉及相同的問題。

我通過允許遠程CouchDB服務器上的端口5984進行通信來解決了該問題。

事實是,在端口80上發送請求(即GET http://<my_server>.com/mydb確實會發回一些數據,所以我一開始就從不費心嘗試使用端口5984,因為我認為API也已實現在端口80上...

因此,至少我的問題與PouchDB沒有關系,但我希望錯誤消息更加具體。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM