IndexDB Uncaught无法执行'事务'在' IDBDatabase'

时间:2017-09-14 04:55:39

标签: javascript html5 transactions local-storage indexeddb

我在login / sigup sistem中工作,我必须使用一些输入的值来注册它们,但我有一个问题。

错误是: 未捕获的DOMException:无法执行'事务' on' IDBDatabase':找不到其中一个指定的对象库。

并出现在以下代码行中:" var data = active.transaction([" usuarios"]," readwrite");"

任何人都可以帮我吗?这是我的代码:

var indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
var dataBase = null;

function startDB(){

  dataBase = indexedDB.open("objectDb", 1);


  dataBase.onupgradeneeded = function (e) {

    var active = dataBase.result;


    var objectDb = active.createObjectStore("usuarios", {keyPath: 'id', autoIncrement : true });


    objectDb.createIndex('index_nombre','nombre', {unique : false});
    objectDb.createIndex('index_user','usuario', {unique : true});
    objectDb.createIndex('index_correo','email', {unique : true});
    objectDb.createIndex('index_pass','pass', {unique : false});
  };

  dataBase.onsuccess = function (e) {
    alert("Base de datos cargada correctamente");

  };

  dataBase.onerror = function (e) {
    alert("Error cargando la base de datos");
  };
}

function add() {
  var active = dataBase.result;

  var data = active.transaction(["usuarios"], "readwrite");

  var objectDb = data.objectStore("usuarios");

  var request = objectDb.put({
    nombre: document.querySelector("#nombre").value,
    usuario: document.querySelector("#usuario").value,
    email: document.querySelector("#email").value,
    pass: documento.querySelector("#pass").value,
  });

  request.onerror = function (e) {
    alert(request.error.name + '\n\n' + request.error.message);
  };

  data.oncomplete = function (e) {
    document.querySelector("#nombre").value = "";
    document.querySelector("#usuario").value = "";
    document.querySelector("#email").value = "";
    document.querySelector("#pass").value = "";
    alert("Objeto agregado correctamente");
  };
}

这是我的第一个带有indexedDB的项目,所以我非常棒。对不起,如果这是

1 个答案:

答案 0 :(得分:0)

我找到了答案,这是var objectDb中的一个错误,我将D放在小写中并且有效。