使用远程CouchDB进行ESOCKETTIMEDOUT

时间:2017-08-30 14:10:39

标签: couchdb

我正在使用docker运行CouchDB服务器,我正在尝试通过Node应用程序发布数据。

但我经常提示ESOCKETTIMEDOUT错误(并非总是如此)。

以下是我打开数据库连接的方式:

var remoteDB = new PouchDB('http://localhost:5984/dsndatabase', {
  ajax: {
    cache: true,
    timeout: 40000 // I tried a lot of durations
  }
});

以下是用于发送数据的代码:

exports.sendDatas = function(datas,db, time) {
  console.log('> Export vers CouchDB')
  db.bulkDocs(datas).then(function () {
    return db.allDocs({include_docs: true});
  }).then(function (){
    var elapsedTime = new Date().getTime() - time;
    console.log('> Export terminé en ', elapsedTime, ' ms');
  }).catch(function (err) {
    console.log(err);
  })
};

错误不会每次出现,但我无法找到模式。

并且,超时与否,我的所有数据都已成功加载到我的CouchDB中!

我在这个问题上看过很多帖子,但没有一个真正回答我的问题......

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

好的,这似乎是真正的问题: https://github.com/pouchdb/pouchdb/issues/3550#issuecomment-75100690

我认为您可以通过使用指数退避声明一个相当长的超时值/重试逻辑来解决它。

如果这对你有用,请告诉我。

相关问题