同步PouchDB与服务器

问题描述:


我目前正在为一家初创公司工作,该公司要求我使用pouchDB开发一个离线应用程序。这个pouchdb用于存储用户输入的数据。
脱机应用程序正常工作。现在,我必须在在线应用程序中添加一个功能才能同步dbs。登录后,在线应用程序必须检查数据是否存储在正在连接的设备上的pouchdb中,如果检查发现数据,则在线应用程序必须提取该数据。
我有以下问题:在线应用程序无法获取设备上存储的本地数据库(即使我在同一浏览器中运行这两个应用程序)。同步PouchDB与服务器

我在另一个*文章中解释了我的问题,但是这个表述不太好,所以我认为这是发布另一个问题的好消息。

我的旧后here

我在几天就这个问题工作,我没有太多的时间,直到我必须完成我的工作,如果有人知道如何解决这个问题,它还是非常不错的: )

我觉得缺乏回应是因为读者不清楚问题是什么。在你的另一篇文章中,听起来好像你在说如果你写了一个新的条目到本地数据库,你不能再次检索它。在这个问题中,听起来就像一旦你有一个本地数据库条目,你不能将它复制到服务器数据库 - 是这样吗?

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