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

socket.ioでリアルタイムチャット

目次1 環境2 準備3 サーバー側~express4 socket.ioのイベント駆動5 サーバー側~socket.io6 クライアント側7  接続者全員にメッセージを流したいので修正8  情報 環境 …

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

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

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+Browserify(debowerify)+jQueryUi

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

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

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