当 pouchdb 身份验证无法与 .sync 功能配合使用时,如何将 PouchDB 与 CouchDB 同步?

问题描述 投票:0回答:1

我可以使用 pouch-authentication 插件从节点实例登录 couchDB 到远程数据库,但我不确定如何使用 .sync 方法进行复制,因为它在调用时不使用凭据。在 pouch-authentication 的文档中,它只是简单地说:

“但是 pouchdb-authentication API 将在您的远程上运行 PouchDB 对象,而不是您本地的对象。”

因此,我不断收到未经授权/未经身份验证的凭据的 401 错误。

那么,我该如何进行实时同步呢?下面是我的代码:

    const PouchDB = require("pouchdb");
    const PouchDBAuth = require('pouchdb-authentication');
    
    PouchDB.plugin(PouchDBAuth)
    
    // Create a new database instance
    const localDB = new PouchDB('database')
    
    const remoteDB = await new PouchDB("http://127.0.0.1/database", {skip_setup: true})
            remoteDB.logIn('user', '12345678', function (err, response) {
                if (err) {
                    if (err.name === 'unauthorized' || err.name === 'forbidden') {
                      console.log("4", err)
                    } else {
                       console.log("other")
                    }
                }
                remoteDB.getSession(function (err, response) {
                    if (err) {
                      // network error
                    } else if (!response.userCtx.name) {
                      // nobody's logged in
                    } else {
                      // response.userCtx.name is the current user
                    }
                localDB.sync(remoteDB, {
                    live: true
                }).on('change', function (change) {
                    // yo, something changed!
                    console.log("Yo, something changed")
                }).on('error', function (err) {
                    console.log("Yo, we got an error", err)
                    // yo, we got an error! (maybe the user went offline?)
                });
            })
       })
javascript node.js electron couchdb pouchdb
1个回答
0
投票

PouchDB Authentication
包概述的末尾有:
Since version 1.0.0, this plugin does support Node.js.

© www.soinside.com 2019 - 2024. All rights reserved.