如何解决PouchDB 7.2.2 更新文档未持久化
我已尝试根据此参考更新文档:https://pouchdb.com/guides/updating-deleting.html,并且根据更新时的响应,它表示数据库已更新。
但是,如果我关闭浏览器并重新加载数据库,我的编辑就会消失,并且它已将我的更改“还原”为版本“1.0”,版本“2.0”不再存在。就好像更改永远不会持久化到数据库中一样。
我使用了该参考文献中出现的代码。这是一个“本地”唯一的数据库,它不受远程数据库的支持。这是我正在开发的当前应用程序的用例。没有计划由远程数据库支持。
我在 Windows 10(最新版本的 Chrome)上使用 Chrome。
有人可以帮忙解决这个问题吗?
这是我用来更新文档的代码。更新后,它会在“then”语句中返回“new”文档。
database.get(newdoc._id).then(function(doc){
doc.title = newdoc.title;
doc.label = newdoc.labels;
doc.content = newdoc.content;
//** Save the document here
return database.put(doc,function callback(err,result) {
if (err) {
console.error('Error updating doc: ' + doc);
console.error(err);
} else {
console.log('Update Successful: ' + doc);
console.log(result);
}
});
}).then(function(){
return database.get(newdoc._id,function(err,doc) {
if (err) {
console.error('Error getting document.');
console.error(err);
} else if (doc._rev === newdoc._rev) {
console.log('Document revision never changed : ' + doc._rev);
} else {
console.log('Document saved,new revision = ' + doc._rev);
loadTheDocument();
}
});
});
但是,当我尝试通过搜索加载“新”文档时,我得到:
bm5-edit.js:121 DOMException:无法在“IDBDatabase”上执行“事务”:数据库连接正在关闭。
var sel = {
_id:{ $regex : "^" + itemid + "$" },label:{ $regex: ".*" },title:{ $regex: ".*" },content:{ $regex: ".*" }
};
var cfgall = {
selector: sel,use_index: 'all-fields'
};
try {
database.find(cfgall).then(function(result){
var len = '' + result.docs.length;
if (len === "1") {
$.each(result.docs,function(index,value){
rev = value._rev;
original = new Bookmark(value);
original.setForm();
});
} else {
console.error('Found ' + len + ' results. Should have found 1.');
}
}).catch(function(err){
console.error('Error performing search');
console.error(err);
});
} catch (err) {
console.error('Error performing search');
console.error(err);
}
此搜索在我编辑文档之前成功执行,在我编辑文档之后失败并显示此错误。
谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。