【发布时间】:2014-05-03 10:32:26
【问题描述】:
我正在构建一个具有离线功能的 web 应用程序。我正在使用webcache 和pouchDB 的组合来实现它。
目前我正在测试针对数据库损坏的恢复机制。我的前提是,由于 pouchDB 是在客户端运行的,它暴露给任何错误或故意破坏数据库的人。 也许如果出现错误或类似情况,数据库可能会损坏。然后,如果 DB 损坏,除非它被 webapp 检测到并清理,否则它将永远无法正常工作。
测试很简单: - 创建 PouchDB:
var dbOptions = { 自动压缩:假, 缓存:假 }; var db = new PouchDB('myDB',dbOptions);- 使用开发者工具删除部分数据库。
- 在加载应用程序时,它会尝试读取所有文档:
此时"Uncaught TypeError: Cannot set property '_rev' of undefined " 被抛出。我试图捕捉异常并使用 pouchDB 提供的承诺,但没有一个奏效。
各位小伙伴有遇到过类似的问题吗?你是怎么解决的?
编辑: 当 PouchDB 返回 500 Internal error 时,应用程序应该如何从中恢复?我试图破坏数据库
db.destroy(function(err,info){console.log(err||info);}但它不起作用。它也返回 500 内部错误。
【问题讨论】:
标签: corruption pouchdb