2016-10-24 4 views
0

こんにちは私は自分のphonegap用のローカルデータベースを構築したいので、ユーザーはオフラインで使用できます。コレクションのmongodb配列をindexedDB内に格納する方法

私はデータベースを作成する角度関数でこれを持っています。

function Database() { 

    return { 
     create: function (itemDocs) { 

      var db = null; 

      var request = indexedDB.open("myDB", 1); 

      request.onsuccess = function (event) { 
       db = event.target.result; 
       console.log("DB loaded successfully"); 

      }; 

      request.onerror = function (event) { 
       console.log(event) 
      }; 

      request.onupgradeneeded = function (event) { 
       db = event.target.result; 
       console.log("DB initiliazed/created"); 

       //create collections 
       db.createObjectStore("items", {keyPath: "_id"}); 

       //create documents 
       var transaction = db.transaction(["items"], "readwrite"); 

       var items = transaction.objectStore("items"); 

       items.add(itemDocs); 

      }; 


     } 
    } 

} 

itemDocsは、(オブジェクトの配列です)MongoDBのコレクションを保持し、私は持つ問題イム私はこの迷惑なエラーを取得していますということであるのIndexedDBデータベース内でそのコレクションを保存したいです。

Uncaught InvalidStateError: Failed to execute 'transaction' on 'IDBDatabase': A version change transaction is running. 

答えて

1

使用var transaction = event.target.transaction代わりvar transaction = db.transaction(...);

の完全な答えはかなり長いです。簡単に言えば、新しくトランザクションを作成する必要はありません。既に有効な取引があります。

関連する問題