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でTrayアイコン

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

Todolistをmarionette化

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

デスクトップアプリを作成できるフレームワークをWindowsで触ってみた~Electron

By: Adam Jenkins – CC BY 2.0 目次1 Electron2 前提3 electronのインストール4 Hello World5 パッケージング6 DevTool7 …

Electronでsql.js

By: Dmitry Baranovskiy – CC BY 2.0 目次1 sql.js2 準備3 インストール4 main.coffee5 index.coffee6 index.ht …

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

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