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
-,

執筆者:

関連記事

no image

CentOS5.8にnodebrewでnode.jsをインストール

github.com/hokaccha/nodebrew インストールは簡単

.bashrcに追加 [crayon-5a17c887e …

Todolistをmarionette化

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

Electron+Browserify(debowerify)+jQueryUi

By: Wilson Hui – CC BY 2.0 目次1 bower install2 browserify(debowerify)3 require4 jQueryUIをMarion …

Ubuntu12.04にnode6.9をインストール~nodebrew

By: Kazuyoshi Kato – CC BY 2.0 目次1 nodebrew自身のアップデート2 nodebrewでnode6.9をインストール3 yarnのインストール nod …

gulpでelectronをlivereloadしながらcoffeeとsassで開発する環境

By: Nrico – CC BY 2.0 目次1 package.json2 gulpfile.coffee3 bower + browserify4 ストップウォッチ package. …