【问题标题】:Sync PouchDB with server将 PouchDB 与服务器同步
【发布时间】:2017-08-25 12:17:09
【问题描述】:


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

我在另一个 StackOverflow 帖子中解释了我的问题,但表述不是很好,所以我认为发布另一个问题是件好事。

我的旧帖here

我花了几天时间解决这个问题,直到我必须完成我的工作之前我没有太多时间,如果有人知道如何解决这个问题,那就太好了:)

【问题讨论】:

    标签: javascript reactjs web pouchdb offlineapps


    【解决方案1】:

    我认为缺乏回应是因为读者不是很清楚问题是什么。在您的另一篇文章中,听起来您在说如果您向本地数据库写入新条目,则无法再次检索它。在这个问题中,听起来一旦您拥有本地数据库条目,就无法将其复制到服务器数据库 - 是这样吗?

    the PouchDb front page 上是写入本地数据库然后将其复制到服务器的简短示例。像这样:

    var db = new PouchDB('dbname');
    
    db.put({
      _id: 'dave@gmail.com',
      name: 'David',
      age: 69
    });
    
    db.replicate.to('http://example.com/mydb');
    

    (该示例假设任何人都可以更新数据库,即没有安全性 - 否则您需要用户名和密码as explained here

    这对你有用吗?如果不是,你能说会发生什么吗?

    检查本地是否有数据应该是查看本地数据库中是否有任何条目(db.info 将是一个开始,因为它返回文档计数)。然后您可以使用db.replicate 调用复制本地数据库。

    这有帮助吗?

    【讨论】:

    • 我认为这不是 TS 的问题,他在与本地在线(实际同步的那个)不同的主机上运行他的本地离线 pouchDB(例如 localhost:3000 而不是 localhost :9000)。这样做的问题是 pouchDB 基于名称 + 主机存储信息。否则,您很容易在名称冲突中运行。所以问题是即使这两个数据库共享相同的名称,可以连接到互联网的应用程序使用不同的数据库(但名称相同)。结果他无法同步离线数据库的数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-03
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 2023-03-03
    • 2019-01-16
    • 1970-01-01
    相关资源
    最近更新 更多