复制数据库时 pouchDB 出错

Posted

技术标签:

【中文标题】复制数据库时 pouchDB 出错【英文标题】:Error in pouchDB when replicating db 【发布时间】:2014-05-08 23:39:06 【问题描述】:

我正在使用来自 CouchDB (couchappy.com) 的远程数据更新我的 PouchDB。每次我从一个空的 PouchDB 执行此操作时,都会收到以下错误:

ReferenceError result: Object, stack: (...), message: "writeCheckpoint completed with error" 消息:“writeCheckpoint 完成但出现错误” 结果:对象 doc_write_failures:0 文档阅读:1 docs_written: 1 end_time:2014 年 5 月 9 日星期五 02:21:33 GMT+0300 (EEST) 错误:数组 [0] 最后序列:36 好的:假的 开始时间:2014 年 5 月 9 日星期五 02:21:32 GMT+0300 (EEST) 状态:“中止” __proto__: 对象 堆: (...) 获取堆栈:函数()[本机代码] 设置堆栈:函数()[本机代码] __proto__: 错误

下面是我的代码:

db.replicate.from('https://(server).couchappy.com/database', 活:假, doc_ids:flk_content.get('selectedLanguage') ) .on('改变',函数() 控制台日志(错误||响应); ) .on('完成',function() db.compact(); ) .on('error',function(e)console.log(e);););

我从 .on('error') 回调中得到错误消息。

一旦我收到错误,如果我再次重新加载并再次同步数据,则没有错误。

这个错误是什么意思?如何预防?有没有进一步的后果? 谢谢各位!

编辑:

我从 PouchDB 电话中获得的更多详细信息:

"ReferenceError: err 未定义 在复制。 (http://mydomain/myscript:851:508) 在 Replication.EventEmitter.emit (http://mydomain/pouchdb-2.2.0.js:6607:17) 在 http://mydomain/pouchdb-2.2.0.js:5293:19"

myscript 中的第 851:508 行转到我前面提到的复制调用。 我简要检查了 pouchDB js,似乎 err 是一个用于在

中引发错误的内部变量 功能完成批次() 写作检查点=真; 返回 checkpointer.writeCheckpoint( currentBatch.seq ).then(函数 (res) 写作检查点=假; 如果(returnValue.cancelled) 完成复制(); 抛出新的错误('取消'); 结果.last_seq = last_seq = currentBatch.seq; result.docs_written += currentBatch.docs.length; returnValue.emit('change', utils.clone(result)); 当前批次=未定义; 获取更改(); )["catch"](函数(错误) 写作检查点=假; abortReplication('writeCheckpoint 完成但错误', err); 抛出错误; );

所以看起来虽然抛出了错误,但没有设置err变量?

【问题讨论】:

【参考方案1】:

你永远不会在这里定义错误(或响应)

.on('change',function()
    console.log(err||response);
)              ^

【讨论】:

以上是关于复制数据库时 pouchDB 出错的主要内容,如果未能解决你的问题,请参考以下文章

将数据框复制到 Impala 数据库时出错

用户角色的 Couchdb/Couchdb 复制策略

将查询从 linq 复制到数据表时出错

将 FBO 复制到 VBO 时出错

Oracle SQL Developer - 将视图从一个数据库复制到另一个数据库时出错

将数据从 HDFS 复制到 Hive 中的外部表时出错