Pouchdb更改为远程Couchdb失败,并带有ETIMEDOUT(中间代理)

时间:2018-01-20 21:05:51

标签: javascript express proxy couchdb pouchdb

我有一个使用PouchDB API与远程CouchDB通信的angularjs Web应用程序,中间有一个介于它们之间的Node.js代理(express-http-proxy)。

当我尝试通过同音词方法更改文档时,请求在ETIMEDOUT错误一段时间(大约30秒)后失败,如下例所示:

USER INFO error: Error: ETIMEDOUT  user.service.js:190
 at XMLHttpRequest.xhr.onreadystatechange (pouchdb.js:11051)
 at timeoutReq (pouchdb.js:10995)

Error message image

在我的代码中,我使用以下参数调用.changes()方法:

db.changes({
    since: 'now',
    live: true,
    include_docs: true,
    doc_ids: [userDocId],
    heartbeat: 1000
  }).on('change', function(change) {
    console.log("USER INFO change:",change);
  }).on('complete', function(info) {
    console.warn("USER INFO complete:",info);
  }).on('error', function(err) {
    console.error("USER INFO error:",err);
  });

如果我还设置了timeout参数,则该方法在我设置的毫秒数后失败。

如果更改在超时错误被推迟另外约30秒的时间内到达。超时错误后,其他更改不再到达。

我也将.changes()用于其他请求,但是对于之前的更改,一切都很顺利,因为它不存在。

我希望它能无限期保持活跃,但似乎心跳不能正常工作;是否有任何我应该设置的配置或参数?

0 个答案:

没有答案