为什么使用keyPath就存储不了?
来源:3-2 indexDB(2)
soso_crazy
2019-05-15 15:34:16

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>indexDB</title>
</head>
<body>
<script type="text/javascript">
var request = indexedDB.open('textDB', 5);
//如果有这个数据库 那就打开。没有,就创建
//版本号只能往上走 不可以降
console.log(request); //创建的数据库是一个对象IDBOpenDBRequest,有很多的方法
request.onsuccess = function() {
console.log('创建数据库成功');
};
// onsuccess 数据库创建或打开成功
request.onerror = function() {
console.log('创建数据库失败');
};
// 数据库打开失败(常见于版本号降低)
request.onupgradeneeded = function() { //onupgradeneeded版本升级触发的函数
console.log('版本号升级了');
var db = request.result; //对象IDBOpenDBRequest有result的属性
db.createObjectStore('test1', {
autoIncrement: true
}); //设置自增主键
var db1 = request.result;
db1.createObjectStore('test2', {
keyPath: 'id'
});
};
var json = {
"id": 1001,
"name": "leo",
"age": "18"
};
var json1 = [{
"id": 200,
"name": "Modoy",
"age": "15"
}, {
"id": 201,
"name": "Busy",
"age": "21"
}, {
"id": 202,
"name": "Blue",
"age": "23"
}];
setTimeout(function() {
var db = request.result;
var transaction = db.transaction('test1', 'readwrite'); //打开一个事务,使用test1的Object store,对数据库进行读写操作
//有多个数据库表可以用数组的形式 IDBOpenDBRequest.result.transaction(['test1','test2',...],'readwrite');
var store = transaction.objectStore('test1'); //获取test1的object store。
store.add(json);
}, 300);
setTimeout(function() {
var db1 = request.result;
var transaction = db1.transaction('test2', 'readwrite');
var store1 = transaction.objectStore('test2');
store1.add(json1);
}, 300);
</script>
</body>
</html>
1回答
soso_crazy
提问者
2019-05-15
找到问题所在了,对于数据内容有多个的时候,需要对数据遍历
相似问题