Couchdb PockDB bulkdocs不';如果以前删除过文档,请不要使用{new_edits:false}重新添加该文档
本地数据库与远程沙发同步。远程验证会根据某些规则引发未经授权的错误。当发生Couchdb PockDB bulkdocs不';如果以前删除过文档,请不要使用{new_edits:false}重新添加该文档,couchdb,pouchdb,Couchdb,Pouchdb,本地数据库与远程沙发同步。远程验证会根据某些规则引发未经授权的错误。当发生denied事件时,我编写了以下代码来获取远程文档并在本地复制它,以便将本地文档更改恢复到服务器上的状态- function processUnauthorizedError(err, self) { const { doc: { error, id } = {} } = err; if (error !== "unauthorized") { return; } // Replace/inser
denied
事件时,我编写了以下代码来获取远程文档并在本地复制它,以便将本地文档更改恢复到服务器上的状态-
function processUnauthorizedError(err, self) {
const { doc: { error, id } = {} } = err;
if (error !== "unauthorized") {
return;
}
// Replace/insert remote doc into local
// https://stackoverflow.com/a/34570061/2790937
return self.remoteDB.get(id, {revs: true})
.then(doc => {
Logger.log({doc});
return self.localDB.bulkDocs([doc], {new_edits: false})
})
.then((result) => {
Logger.log({result}); // Empty array, see https://github.com/pouchdb/pouchdb/issues/5775
return notifyUnauthorized(id, self)
})
}
此策略基于此建议-。
但是,如果文档是在本地删除的,则localdbbulkDocs
操作不会将其重新插入。它完成时没有错误,并返回空数组,这是本期的预期结果-。为了确认没有插入文档,我在本地执行了后续的allDocs
以及get
有什么建议吗
代码运行在最新的Chrome(81)中,并使用最新的PockDB(PockDB浏览器)7.1.1