// indexedDB.open("Storage 이름", 버전)
const dbRequest = indexedDB.open("Storage", 1);
// onupgradeneeded 는 indexedDB가 처음 생성되거나 버전이 바뀌면 실행됨
dbRequest.onupgradeneeded = function (event) {
const db = event.target.result;
// createObjectStore는 products라는 이름의 스토어를 생성하고 Key로는 id가 사용됨
const objStore = db.createObjectStore("products", { keyPath: "id" });
};

const dbRequest = indexedDB.open("Storage", 1);
// DB를 처음생성하거나 버전이 바뀔때 실행됨
dbRequest.onupgradeneeded = function (event) {
const db = event.target.result;
const objStore = db.createObjectStore("products", { keyPath: "id" });
// DB 생성이 완료되면 데이터를 추가함
objStore.transaction.oncomplete = function (event) {
const productsStore = db
.transaction("products", "readwrite")
.objectStore("products");
productsStore.add({
id: "p1",
title: "홍길동",
age: "20",
job: ["가수", "학생", "개발자"],
});
};
};

const dbRequest = indexedDB.open("Storage", 1);
dbRequest.onupgradeneeded = function (event) {
const db = event.target.result;
const objStore = db.createObjectStore("products", { keyPath: "id" });
objStore.transaction.oncomplete = function (event) {
const productsStore = db
.transaction("products", "readwrite")
.objectStore("products");
productsStore.add({
id: "p1",
title: "홍길동",
age: "20",
job: ["가수", "학생", "개발자"],
});
};
};
'onerror로 에러를 처리 할 수있음'
dbRequest.onerror = function(event){
console.log("에러 발생!")
}
const addBtn = document.querySelector('.addBtn');
const getBtn = document.querySelector('.getBtn');
const dbRequest = indexedDB.open("Storage", 1);
let db;
dbRequest.onupgradeneeded = function (event) {
db = event.target.result;
const objStore = db.createObjectStore("products", { keyPath: "id" });
// DB가 처음으로 생성되는게 완료되면 데이터가 들어감
objStore.transaction.oncomplete = function (event) {
const productsStore = db
.transaction("products", "readwrite")
.objectStore("products");
productsStore.add({
id: "p1",
title: "홍길동",
age: "20",
job: ["가수", "학생", "개발자"],
});
};
};
dbRequest.onsuccess = function (event) {
db = event.target.result;
};
dbRequest.onerror = function (event) {
console.log("에러 발생!");
};
// 해당 이벤트가 발생하면 데이터가 들어감
const addData = () => {
if (!db) return;
const productsStore = db
.transaction("products", "readwrite") // readwrite외에 readonly도 있음
.objectStore("products");
productsStore.add({
id: "p2",
title: "김길동",
age: "25",
job: ["가수", "개발자"],
});
};
const getData = () => {
if (!db) return;
const productsStore = db
.transaction("products", "readwrite")
.objectStore("products");
const request = productsStore.get("p2"); // 찾고자 하는 데이터의 키값
request.onsuccess = function () {
console.log(request.result);
};
};
addBtn.addEventListener('click', addData) // 클릭시 데이터 추가
getBtn.addEventListener('click', getData) // 클릭시 데이터 출력
addBtn 클릭시 데이터가 추가됨

getBtn 클릭시 콘솔에 데이터를 가져옴
