我正在开发一个具备离线功能的Web应用。我使用了
目前,我正在测试针对数据库损坏的恢复机制。我的前提是,由于pouchDB在客户端运行,所以任何人都可以意外或故意破坏数据库。此外,在出现错误或类似情况时,数据库可能会损坏。如果数据库损坏了,除非通过Web应用程序检测到并清理,否则它将永远无法正常工作。
测试非常简单: - 创建PouchDB:
你们有没有遇到过类似的问题?你们是如何解决的?
编辑: 当PouchDB返回500内部错误时,应用程序应该如何恢复?我尝试销毁数据库
webcache
和pouchDB
的组合来实现这一目标。目前,我正在测试针对数据库损坏的恢复机制。我的前提是,由于pouchDB在客户端运行,所以任何人都可以意外或故意破坏数据库。此外,在出现错误或类似情况时,数据库可能会损坏。如果数据库损坏了,除非通过Web应用程序检测到并清理,否则它将永远无法正常工作。
测试非常简单: - 创建PouchDB:
var dbOptions = { auto_compaction : false, cache : false }; var db = new PouchDB('myDB',dbOptions);
- 使用开发者工具删除部分数据库。
- 在加载应用程序时,它尝试读取所有文档:
db.allDocs({include_docs : true}, function(_err,_response){ (某些代码) }此时会抛出
"Uncaught TypeError: Cannot set property '_rev' of undefined "
。我尝试捕获异常并使用pouchDB提供的promise,但都没有起作用。你们有没有遇到过类似的问题?你们是如何解决的?
编辑: 当PouchDB返回500内部错误时,应用程序应该如何恢复?我尝试销毁数据库
db.destroy(function(err,info){console.log(err||info);}但它不起作用。它也返回500内部错误。