node.js

Electronでsqlite3を使ったアプリ

投稿日:2016年1月24日 更新日:

環境

Windowsではsqlite3がうまく動かず.
以下は、OSX el capitanで行った.

electronでnpmモジュールを使うには

Dオプションはsave-devと同じ.
save-devはインストールしたモジュールの情報をpackage.jsonに書き足してくれるオプション.

jqueryをレンダラプロセスで使う

前処理として、jqueryを使えるようにしておく.

install

require

レンダラプロセスでrequireする.

slqite3の使い方

mapbox/node-sqlite3

install

require

databaseの初期化処理

ファイルがない場合は、ファイルを作ってくれる.
ただ、CREATE TABLEを2回目以降もやろうとすると、エラーが出てしまう.
そこで、データベースのファイルがある場合は、そのままファイルを開く、ファイルがない場合は、ファイルを作成して、CREATE TABLEをするようにした.

databaseのclose

終了時にデータベースを閉じる.

ipc通信

メインプロセスとレンダラプロセスとはipcという仕組みで通信する.
github.com/atom/electron/blob/master/docs-translations/jp/api/ipc-main.md
サーバーとクライアントのイメージで、メインプロセスでデータベース処理をして、レンダラプロセスにデータを投げるようにする.

メインプロセス

そして、初期処理として、BrowserWindowを描画したら、データベースからselectしたデータを投げる.

次に、レンダラプロセスからデータが送信されたら、データベースを更新して、リストを再描画するようデータを返信する.

レンダラプロセス

レンダラプロセスでは、データを受信したらリストを再描画することと、データを送信することを行う.

まず、データを受信したらリストを再描画する.

次に、フォームからデータを送信する.

done

これでとりあえずデータの永続化ができた.
Backbone.syncをオーバーライドしたい.

Windowsでは動かない

Macからwin32でpackagingしてみたけど、やはりWindows上では動きませんでした…

ScreenClip

-node.js
-,

執筆者:

関連記事

Electron + CoffeeScript + Backbone.js + EcoでTodolistをつくってみた

By: Purple Slog – CC BY 2.0 目次1 はじめに2 gulpの準備3 Hello electron4 Hello Backbone.js & eco5 Ba …

Electronでmaterialize

By: Vancouver Film School – CC BY 2.0 目次1 Materialize2 bower3 sass4 browserify5 できた Materializ …

ElectronでTrayアイコン

By: Cooks & Kitchens – CC BY 2.0 目次1 Tray2 main.coffee3 できた Tray github.com/atom/electron

Electronのアプリケーションメニューからセーブダイアログを出してファイルを保存

By: Jean-Pierre Dalbéra – CC BY 2.0 目次1 はじめに2 require3 メニュー4 gulpfile.coffee5 できた はじめに 今後は、Ele …

Todolistをmarionette化

By: Jackie – CC BY 2.0 目次1 Marionette.js2 インストール3 Application4 gulpfile.coffee5 ItemView6 Coll …