PouchDB数据库遇到未知错误。

6

在复制来自CouchDB数据库的数据时,我遇到了“数据库遇到未知错误”的消息。它开始复制,下载了一些文档,然后在复制了一些文档之后失败了。我无法确定出现这种情况的确切问题。

CustomPouchError {status: 500, name: "unknown_error", message: "Database encountered an unknown error", error: true, result: Object}


CouchDB 服务器返回的实际错误是什么?您可以在客户端浏览器开发工具中查看(通过查看该请求的 HTTP 响应正文),也可以在 CouchDB 日志中在服务器端查看。 - natevw
什么也没有出现。甚至日志中也没有记录。 - VarunS03
你是在浏览器中使用PouchDB还是在node.js中使用?如果在浏览器中,你应该能够在开发者工具中看到它所发出的请求。另外,你可以添加一个.on('error', function (e) { console.error(e, e.result); })监听器到复制对象中以获取更多关于错误的信息。 - natevw
另外一个可能有帮助的事情是在问题中添加关于您的数据库的更多细节:它是否有大量文档?是否有一些非常大的文档/附件?它是否通过特别不可靠的连接访问? - natevw
1个回答

0

可能有很多原因:

  1. 由于服务器端未启用CORS,可能存在CORS问题:https://pouchdb.com/getting-started.html#enabling_cors
  2. 如果要下载的文档太大,则可能会出现超时问题:在这种情况下,您可以在couchDB配置和客户端进行数据库复制期间设置超时时间(https://pouchdb.com/api.html#replication
  3. 还有许多其他原因 :)

但是,我的最终解决方案是在复制中使用retry选项(https://pouchdb.com/api.html#replication),在失败的情况下强制重试复制:

    PouchDB.replicate(localDB, baseRemoteDB, 
        {
            live: true,
            retry: true,
            timeout: false
        }
    )

作为结果,复制每两个文档暂停一次(而不是因为未知错误而停止),并在几秒钟后从第一个新文档恢复。重试时间也可以通过回退函数进行自定义(参见前面的文档)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接