PouchDB Replication在复制时抛出错误

kar*_*tik 7 couchdb google-chrome nginx pouchdb ubuntu-14.04

当我尝试使用我的本地复制远程couchdb(on ubuntu 14.04- 64 bit)时pouchdb,我遇到了这个奇怪的错误.我的couchdb通过nginx并运行代理https.从客户端到nginx的流量是ssl,而nginx到couchdb是简单的http.在couchdb中启用了Cors请求.Nginx配置与couchdb推荐最相似.从数据库同步工作正常,但在通过Chrome版本54.0.2840.100(64位)进行调试时遇到错误.

在此输入图像描述

以下是错误的完整堆栈跟踪.

raven.min.js:2 Error: There was a problem getting docs. at finishBatch (http://localhost:8100/lib/pouchdb/dist/pouchdb.js:6410:13) at processQueue (http://localhost:8100/lib/ionic/js/ionic.bundle.js:27879:28) at http://localhost:8100/lib/ionic/js/ionic.bundle.js:27895:27 at Scope.$eval (http://localhost:8100/lib/ionic/js/ionic.bundle.js:29158:28) at Scope.$digest (http://localhost:8100/lib/ionic/js/ionic.bundle.js:28969:31) at http://localhost:8100/lib/ionic/js/ionic.bundle.js:29197:26 at completeOutstandingRequest (http://localhost:8100/lib/ionic/js/ionic.bundle.js:18706:10) at http://localhost:8100/lib/ionic/js/ionic.bundle.js:18978:7 at d (http://localhost:8100/lib/raven-js/dist/raven.min.js:2:4308) undefineda.(anonymous function) @ raven.min.js:2(anonymous function) @ ionic.bundle.js:25642(anonymous function) @ ionic.bundle.js:22421(anonymous function) @ angular.min.js:2processQueue @ ionic.bundle.js:27887(anonymous function) @ ionic.bundle.js:27895$eval @ ionic.bundle.js:29158$digest @ ionic.bundle.js:28969(anonymous function) @ ionic.bundle.js:29197completeOutstandingRequest @ ionic.bundle.js:18706(anonymous function) @ ionic.bundle.js:18978d @ raven.min.js:2 raven.min.js:2 Paused in lessondb replicate Error: There was a problem getting docs. at finishBatch (http://localhost:8100/lib/pouchdb/dist/pouchdb.js:6410:13) at processQueue (http://localhost:8100/lib/ionic/js/ionic.bundle.js:27879:28) at http://localhost:8100/lib/ionic/js/ionic.bundle.js:27895:27 at Scope.$eval (http://localhost:8100/lib/ionic/js/ionic.bundle.js:29158:28) at Scope.$digest (http://localhost:8100/lib/ionic/js/ionic.bundle.js:28969:31) at http://localhost:8100/lib/ionic/js/ionic.bundle.js:29197:26 at completeOutstandingRequest (http://localhost:8100/lib/ionic/js/ionic.bundle.js:18706:10) at http://localhost:8100/lib/ionic/js/ionic.bundle.js:18978:7 at d (http://localhost:8100/lib/raven-js/dist/raven.min.js:2:4308)

网络登录chrome显示某些请求被取消

在此输入图像描述

我正在使用couchdb版本 - 1.6.1和pouchdb版本 - 5.3.2.我使用以下命令来复制dbs:

myDB.replicate.from(remote_db_url,{ live: true, retry: true, heartbeat: false }) 如果有人可以对心跳参数有所了解,那也很棒.

Pho*_*log 0

注意:我无法解决您所描述的错误。也许完整的堆栈跟踪而不是屏幕截图可能会有所帮助......

\n\n

但我会尝试阐明心跳参数:阅读文档已经有所帮助。查看高级选项replicate

\n\n
\n

options.heartbeat:配置 CouchDB 支持的心跳,使更改连接保持活动状态。

\n
\n\n

那么让我们查看CouchDB 的文档来看看这个参数的作用:

\n\n
\n

网络是一个棘手的野兽,有时您不知道是否没有任何变化或您的网络连接已失效。如果您添加另一个查询参数 heartbeat=N,其中 N 是一个数字,CouchDB 将每 N 毫秒向您发送一个换行符。只要您收到换行符,您就知道没有新的更改通知,但 CouchDB 仍准备好在发生下一个通知时向您发送下一个通知。

\n
\n\n

所以基本上它似乎是一种轮询机制,每 n 毫秒(其中 n 是您指定的值)发送一条消息(例如换行符heartbeat),以确保两个数据库之间的连接仍然有效。

\n\n

将值设置为false将禁用此机制。

\n\n
\n\n

关于该参数可以使用哪个值:\ nPouchDB 文档进一步指出,该changes方法具有类似的参数,如下所示:

\n\n
\n

options.heartbeat:仅适用于 http 适配器,服务器发出心跳以保持长连接打开的时间(以毫秒为单位)。默认为 10000(10 秒),使用 false 禁用默认值。

\n
\n