やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

JSのIndexedDB APIを使う(dexie.js)

 RDBのようにデータを読書できる。

成果物

情報源

やったこと

  • DB作成
  • レコードの追加・変更・削除

コード

 要点のみ抜粋する。

 dexie.jsを入手する。

index.html

<script src="https://unpkg.com/dexie@latest/dist/dexie.js"></script>

 DBの作成。

VERSION = 1
const db = new Dexie("SocialDB");
db.version(VERSION).stores({
    friends: "name,age"  // key, index
});

 データの追加・更新。

db.friends
    .put({
        name:"山田",
        age: 20,
        address: "日本"
    })
    .catch((error)=>{
        console.error(error);
    });

 データの取得。

db.friends.get("山田")
    .then((friend)=>{
        console.log(friend);
    })
    .catch((error)=>{
        console.error(error);
    });

 データの削除。

db.friends.delete("山田")
    .then((friend)=>{
        console.log(friend);
    })
    .catch((error)=>{
        console.error(error);
    });

 ほかにもそれぞれを一括で処理するbulk系メソッドがある。

課題

  • where()
    • and()
    • or()
  • transaction()

 ほかにもRDBの機能が色々ある。列の型を定義するとか。

 マイグレーション問題もある。テーブルに列を追加したとき、新しいテーブルへデータ移行する。その処理をどうするか。

 課題はやらない。必要になり次第やる。

所感

 簡単に使えていい感じ。でも複雑なことをやろうとすると大変そう。

対象環境

$ uname -a
Linux raspberrypi 5.4.83-v7l+ #1379 SMP Mon Dec 14 13:11:54 GMT 2020 armv7l GNU/Linux