戻る

オブジェクトスキーマ作成サンプル
データベースのテーブルを作成するサンプル

オブジェクトスキーマ(テーブル)を作成するサンプルです。
非同期処理をPromiseでラップすることで
onsuccessイベントやonerrorイベントなどから
結果を
resolve
reject
を用いて返します。

[サンプル]
copy
async function createTableTest(dbName)
{
	return new Promise((resolve, reject) => 
	{
		const request = indexedDB.open(dbName);
		let objectStore = null;
		request.onerror = function(event) 
		{
			console.error("it fail to open database:", event.target.error);
			reject(event.target.error);
		};
	
		request.onupgradeneeded = function(event) 
		{
			const db = event.target.result;
			objectStore = db.createObjectStore('t1', { keyPath: 'f1' });
			objectStore = db.createObjectStore('t2', { keyPath: 'f1' });
			resolve(1);
		};
		request.onsuccess = function(event) 
		{
			const db = event.target.result;
			db.close();
			resolve(0);
		};
	});

}
createTableTest("sampleDB")
	.then((result) => 
	{
		console.log("result:", result);
	})
	.catch((error) => 
	{
		console.error("error:", error);
	});

const request = indexedDB.open(dbName);
指定したデータベース名をopenします。

request.onerror = function(event)
データベースのオープンに失敗しました。

reject(event.target.error);
エラーとなった場合、event.target.errorの結果を返します。

request.onupgradeneeded = function(event)

const db = event.target.result;
dbオブジェクトを取得します。

objectStore = db.createObjectStore('t1', { keyPath: 'f1' });
下記情報のオブジェクトスキーマ(テーブル)を作成しています。
t1オブジェクトスキーマ(テーブル)ID
f1主キー
createObjectStoreを実行することでオブジェクトスキーマ(テーブル)が作成されます。
イベント処理が終わったら
resolve(1);
を実行します。

request.onsuccess = function(event)
const db = event.target.result;
dbオブジェクトを取得します。
db.close();
データベースをクローズします。
イベント処理が終わったら
resolve(0);
を実行します。

createTableTest("sampleDB")
テーブルを作成する関数を実行します。

.then((result) =>
エラー以外の結果が返ります。

.catch((error) =>
エラーの結果が返ります。




戻る


著作権情報
ホームページおよプリ等に掲載されている情報等については、いかなる保障もいたしません。
ホームページおよびアプリ等を通じて入手したいかなる情報も複製、販売、出版または使用させたり、
または公開したりすることはできません。
当方は、ホームペーよびアプリ利用したいかなる理由によっての障害等が発生しても、
その結果ホームページおよびアプリ等を利用された本人または他の第三者が被った損害について
一切の責任を負わないものとします。