【问题标题】:Error making a request in IndexedDB在 IndexedDB 中发出请求时出错
【发布时间】:2018-07-07 00:32:43
【问题描述】:

我正在使用 IndexedDB,我创建了这个函数,我只想添加一个新对象。

var request = indexedDB.open("db", 1);
request.onsuccess = function(event){
   request = event.target.result;
   var transaction = request.transaction(["cart"], "readwrite");
   var store = transaction.objectStore("cart");
   var obj = {
    w : w,
    x : x,
    y: y,
    z: z
   };
   var requestAdd = store.add(obj);
   requestAdd.onsuccess = function(w){
      console.log("great");         
   }
   request.close();
}

这是我创建索引和 objectStore 的方式

var storeCart = db.createObjectStore("cart", { autoIncrement : true });
        storeCart.createIndex("w", "w", {unique: false});
        storeCart.createIndex("x", "x", {unique: false});
        storeCart.createIndex("y", "y", {unique: false});
        storeCart.createIndex("z", "z", {unique: false});

但是,由于某种原因,当我尝试访问 cart 时,我收到了这个错误:

NotFoundError: The operation failed because the requested database object could not be found. For example, an object store did not exist but was being opened.

我该如何解决?

【问题讨论】:

    标签: javascript indexeddb


    【解决方案1】:

    也许问题在于您需要在 request.onupgradeneeded 事件中创建 objectStore 和索引。

    要触发该事件,您需要首次创建 indexedDB 或在调用 indexedDB.open() 时更改 indexedDB 版本:

    // You need to change the DB version in order to
    // fire the onupgradeneeded event (or delete the previous indexedDB)
    
    var request = indexedDB.open("db", 2);
    
    request.onsuccess = function(event){
         // your code
         // ...
    }
    
    request.onupgradeneeded = function(event){
    
        var db = event.target.result;
    
        var storeCart = db.createObjectStore("cart", { autoIncrement : true });
    
        storeCart.createIndex("w", "w", {unique: false});
        storeCart.createIndex("x", "x", {unique: false});
        storeCart.createIndex("y", "y", {unique: false});
        storeCart.createIndex("z", "z", {unique: false});
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-11
      • 2022-12-03
      • 2021-05-24
      • 1970-01-01
      • 2021-12-05
      • 2017-08-06
      • 2022-01-06
      • 2021-11-26
      相关资源
      最近更新 更多