PouchDB复制返回一个静默错误

时间:2018-07-16 15:43:09

标签: angularjs couchdb pouchdb

我真的是沙发/邮袋的新手,所以我要严格指出一个问题:我有一个包含_users数据库的沙发服务器,并且我为内部的每个用户构建了一个个人数据库(效果很好)。在AngularJS应用中,我需要同步pouchDB(从服务器到客户端的一种方式)。这是我的代码:

wp645397_send_request_email

在执行时,通过以下响应,我分别在错误部分(从脚本行号看到)获得了console.log,并在失败时“ then”:

if($.isEmptyObject(server_params)) {
    throw "Server Params not initialized";
}

var remote_connection_string = server_params.protocol + db_name + ":" + passwd + "@" + server_params.domain + "/" + db_name;
var allow_origin_object = {};

if (server_params.origin) {
    allow_origin_object = {
        fetch: function (url, opts) {
            opts.headers.set('Access-Control-Allow-Origin', server_params.origin);
            return pouchDB.fetch(url, opts);
        }
    };
}

var local_db = new pouchDB({
    auto_compaction: true,
    name: db_name
});
var remote_db = new pouchDB(remote_connection_string, allow_origin_object);

var handler = local_db.replicate.from(remote_db, {});
handler.on('change', function (info) {
    console.log(info, arguments);
}).on('paused', function (err) {
    console.log(err, arguments);
}).on('active', function () {
    console.log("Active!", arguments);
}).on('denided', function (err) {
    console.log(err, arguments);
}).on('complete', function (info) {
    console.log(info, arguments);
}).on('error', function (err) {
    console.log(err, arguments);
}).then(function () {
    console.log("then - resolve: ", arguments);
}, function () {
    console.log("then - reject: ", arguments);
}).finally(function () {
    console.log("finally: ", arguments);
});

最后,这是执行时的couchDB服务器日志:

t {result: {…}}
  result:
    doc_write_failures: 0
    docs_read: 0
    docs_written: 0
    end_time: "2018-07-16T14:58:15.832Z"
    errors: Array(0)
      length: 0
      __proto__: Array(0)
    last_seq: 0
    ok: false
    start_time: "2018-07-16T14:58:15.828Z"
    status: "aborting"
    __proto__: Object
  __proto__: Error

Arguments [t, callee: ƒ, Symbol(Symbol.iterator): ƒ]
  0: t {result: {…}} //same as before
  callee: ƒ (err)
  length: 1
  Symbol(Symbol.iterator): ƒ values()
  __proto__: Object

then - reject: Arguments [t, callee: ƒ, Symbol(Symbol.iterator): ƒ]
                 0: t {result: {…}} //Same as before
                 callee: ƒ ()
                 length: 1
                 Symbol(Symbol.iterator): ƒ values()
                 __proto__: Object

当然同步失败。一些帮助?非常感谢

1 个答案:

答案 0 :(得分:0)

您确定remote_connection _string的格式正确吗?如果您的远程数据库具有用户名和密码,则它应类似于:

for elemento in Vaa_total.columns:
    Vaa_total =Vaa_total.withColumnRenamed(elemento, "Vaa_" + elemento)

但是在您的代码中看起来像您一样:

https://username:password@hostname/databasename

因此,我认为值得检查一下是否可以在解决可能的复制问题之前返回基本数据库信息。