猿问

关于indexedDB中IDBDatabase对象已生成但不能调用createObjectStore

indexedDB中IDBDatabase对象已生成但不能调用createObjectStore方法创建命名空间,提示Uncaught TypeError: Cannot read property 'createObjectStore' of undefined。

下面是代码


    var request = indexedDB.open("jusing"),

        db;

        user = {

            username: "jusing",

            age: 18,

            gender: "male",

            handsome: true

        }

    request.onsuccess = function() {

        db = event.target.result;

    }

    var store = db.createObjectStore("users", {keyPath: "username"});

    store.add(user);


眼眸繁星
浏览 665回答 1
1回答

慕村225694

首先db根本没赋值,其次createObjectStore不能在onsuccess用。要更新数据库的 schema,也就是创建或者删除对象存储空间,需要实现 onupgradeneeded 处理程序,这个处理程序将会作为一个允许你处理对象存储空间的 versionchange 事务的一部分被调用。Using_IndexedDBvar request = indexedDB.open("jusing"),    db;user = {    username: "jusing",    age: 18,    gender: "male",    handsome: true}request.onupgradeneeded  = function() {    db = event.target.result;    var store = db.createObjectStore("users", { keyPath: "username" });    store.add(user);}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答