当我尝试使用我的本地couchdb
复制远程ubuntu 14.04- 64 bit
(在pouchdb
上)时,我遇到了这个奇怪的错误。
我的couchdb通过nginx
代理并在https
上运行。从客户端到nginx的流量是ssl,而nginx到couchdb是简单的http。在couchdb中启用了Cors请求。 Nginx配置与 couchdb recommended最相似。从数据库同步工作正常,但在通过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
})
如果有人可以对心跳参数有所了解,也会很棒。
答案 0 :(得分:0)
注意:我无法解决您描述的错误。也许完整的堆栈跟踪而不是截图可能有帮助...
但我会尝试对heartbeat参数有所了解:阅读docs已经有所帮助了。请参阅replicate
方法的高级选项:
options.heartbeat:配置CouchDB支持的心跳,使更改连接保持活动状态。
因此,让我们查看CouchDB's docs以查看此参数的作用:
网络是一个棘手的野兽,有时您不知道是否没有变化或您的网络连接失效。如果添加另一个查询参数heartbeat = N,其中N是数字,CouchDB将每N毫秒发送一个换行符。只要您收到换行符,就知道没有新的更改通知,但CouchDB仍然准备好在发生下一个时发送给您。
所以基本上它似乎是一个轮询机制,每隔n毫秒(其中n是你指定的heartbeat
值)发送一条消息(例如换行符),以确保两个数据库之间的连接仍然有效。
将值设置为false
将禁用此机制。
关于哪个值可用于此参数:
changes
进一步说明{{1}}方法具有类似的参数:
options.heartbeat:仅适用于http适配器,服务器提供心跳以保持长连接打开的时间(以毫秒为单位)。默认为10000(10秒),使用false禁用默认值。