我正在使用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中!
我在这个问题上看过很多帖子,但没有一个真正回答我的问题......
有什么想法吗?
答案 0 :(得分:0)
好的,这似乎是真正的问题: https://github.com/pouchdb/pouchdb/issues/3550#issuecomment-75100690
我认为您可以通过使用指数退避声明一个相当长的超时值/重试逻辑来解决它。
如果这对你有用,请告诉我。