微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PouchDB 7.2.2 更新文档未持久化

如何解决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 举报,一经查实,本站将立刻删除。