2022年3月2日こんにちは、MSKです。今回はElectronでデータベースを扱ってみます。最初はNeDBを考えていましたが、「electron-db」というものを見つけたのでこちらを試してみたいと思います。スポンサーリンク準備electron-dbを使うサンプルプロジェクトは下のブログで試したElectron+Next.jsを使っています。Next.jsでElectronアプリのプロジェクトを立ち上げてみる!Next.jsを使ってElectronアプリを作ってみました。...electron-dbのGitHubはここになりますので、詳細を見たい方は飛んでみてください。インストールを行います。次のコマンドでインストールができます。次のようにTestというテーブルを作成し、サンプルのデータを挿入するtestDbFunctionというメソッドのみを試しに実装してみます。});};動作を確認するだけなので、結構ひどいコードではありますが・・・まず保存するためのTEST_DATAという型を準備しています。今回は保存する場所を設定したいので、savePathという保存先を指定している変数を準備しています。次にtableExistsでデータベースが存在するかを確認しています。存在しなければsavePathに新しくデータベースを作成しています。次にテストデータを挿入します。データを挿入した後に全データを取得しています。以下のファイル名は上で紹介している記事の中で使っているファイルになります。失敗1pagesフォルダ以下のindex.tsxファイルを次のように変更しました。IndexPageelectron-db/index.jsで次のようなエラーが発生します。'fs'いくらか調べてみるとレンダラープロセスで呼び出しているのが問題だということだったので、ipcRendererでメッセージを送って、メインプロセスで動かすようにします。require("./renderer/lib/database");します。レンダラープロセスからtestDbFunctionを呼び出すメッセージを受信するコードを書きます。testDbFunction();});レンダラープロセス側のrenderer/pages/index.tsxを次のように変更して、useEffectでメインプロセスにメッセージを送信します。IndexPageこれで実行すると次のエラーが出ました。成功エラーを見るとelectron-db/index.jsの処理の中に型エラーが発生しているみたいです。この中のappNameがstringと確定できないためにエラーになっていると分かりましたので、とりあえず次のように型が文字列であるように指定します。String(pack.name)}これでエラーがでなくなり、databaseフォルダの中にTest.jsonが出来ていると思います。最後のgetAllでのログにより、挿入したデータも表示されていると思います。最後にTypescriptで「electron-db」を動かそうとしたので、少し苦戦してしまいました。Nedbも使ったことがありますが、こちらも同じくらい使いやすいと感じました。僕もelectron-dbを使ったアプリを今開発しています。最後までご覧頂き、ありがとうございます。「Electronでデータベースを扱ってみる!」でした。MEMSK九州在住の組み込み系エンジニアです。2児の父親でもあります。数学やプログラミングが趣味です。最近RustとReact、結び目理論と曲面結び目理論にはまっています。MSKもちのき研究所Next.jsでElectronアプリのプロジェクトを立ち上げてみる!Electron-dbで一通りの操作をやってみる!組み込み系エンジニアMSKソフトウェア関連の技術が好きな30代男性です。最近は、Webアプリ開発にチャレンジ中。