のじみんです。
今回はelectron-vueでNeDBを使用する方法について
インストールからDB設定するところまでを説明します
※ 公式ドキュメントと同じ内容なのでそちらをまず参考にしてください。↓
electron-vue - ローカルファイルの読み書き
実行環境とバージョン一覧
- macOS Mojave v10.14.6
- npm v6.9.0
- node v10.16.3
- electron v1.4.13
Install
まずはNeDB
をインストールしましょう
$ npm install --save nedb
もしくは
$ yarn add nedb
Settings
rendererディレクトリの配下にdatastore.js
というファイルを作成する
$ cd <YOUR_PROJECRT>
$ touch ./src/renderer/datastore.js
datastore.js
の中身は以下のようにする
import path from 'path';
import { remote } from 'electron';
import Datastore from 'nedb';
const dbPath = path.join(remote.app.getPath('userData'), '/data.db');
// DB初期化
export default new Datastore({
autoload: true,
filename: dbPath,
});
上記ではelectronのアプリケーションディレクトリのdata.db
ファイルを読み込む処理をしています。
data.db
がない場合は上の処理でファイルが作成されるのでエラーがでることはありません。
main.js
に以下の処理を追記する
...
import db from './datastore';
Vue.prototype.$db = db;
...
以上でどのコンポーネントからもDBを呼び出すことができるようになりました。やったね!
usage
このままだとdata.db
の中身は空なのでデータを引っ張ってくることができません。
なのであらかじめ適当なデータを突っ込んでから
electron-vue
でdbからデータを取得していきましょう
データを挿入する
まず適当にdata.db
にデータを突っ込んでみましょう。
main.js
に以下の文を追記します。
...
import db from './datastore';
Vue.prototype.$db = db;
// 今回追加する処理
const docs= [
{ name: '山田太郎', age: 20 },
{ name: 'のじ先生' age: 10 },
];
db.find({}, (err, doc) => {
// 初回のみ:dbのデータが空だった場合、テーブルの構築をする
if (!doc.length) {
db.insert(docs);
}
});
...
一度アプリをビルドする
$ yarn run dev
ここまで終われば、無事data.db
にデータを入れることができました。
今度はelectorn-vue
でそのデータを取得してみましょう。
electron-vueでdbからデータを取得する
適当なコンポーネントのscript部分に以下を記述する
※ 以下ではApp.vueで記述していると想定して書いています。
<script>
this.$db.find({}, (err, doc) => {
console.log(doc);
});
</script>
はい。以上でおしまいです。
あとはビルドしてみてコンソール出力に格納されたデータが表示されている確認してみてください。
$ yarn run dev
ほんでは