我正在创建一个脚本来从数据库中读取属性 - 由于项目的体系结构,如果在JS中实现它是最简单的。
我使用的是IndexedDB,我可以成功找到数据库,但当我尝试从objectStore获取属性时,我收到错误(似乎我无法访问表):
Firefox:" NotFoundError:操作失败,因为找不到请求的数据库对象。例如,对象存储不存在但正在打开。"
Chrome: NotFoundError:无法执行'事务' on' IDBDatabase':找不到其中一个指定的对象库。
我的代码:
var request = window.indexedDB.open("/app_name/database.sqlite", 1);
request.onsuccess = function(event) {
console.log("Found Database");
db = event.target.result;
var transaction = db.transaction(["TABLE"], "readonly");
var objectStore = transaction.objectStore("TABLE");
var ob = objectStore.get(String(ATTRIBUTE));
ob.onsuccess = function(e) {
console.log("Got ATTRIBUTE")
}
ob.onerror = function(e) {
console.log("Have not got ATTRIBUTE")
}
}
request.onerror = function(event) {
console.log("Database not found");
}
错误发生在var transaction = db.transaction(["TABLE"], "readonly");
行上。
TABLE确实存在 - 当在查看器中打开数据库时,该属性就在那里。
我没有使用.onupgradeneeded
,因为我没有创建任何新的对象库 - 而只是尝试阅读一个。