node.jsでsqlite3を使う
普段仕事ではpythonを使っているが、golangに領分を食われている感を感じており、もっとコミュニケーションツールとして使いやすそうな言語に進出したい…ということで情報の多いJavaScriptの味見をしてみることに。
前々からWindows用デスクトップアプリとして使えるqを作ってみたかったので、 それを題材としてみる。 harelba.github.io
開発はnode.js(electron) + node-sqlite3で行う。 ベーシックなJavaScriptで開発し、今回はaltjsには手を出さない。
まずは最初の一歩としてnpmレポジトリのnode-sqlite3のサンプルを一部修正して写経する。(PowerShell上で適当に書いたのでインデントがひどいのはお察し)
var sqlite = require('sqlite3').verbose(); var db = new sqlite.Database('sample.db'); db.serialize(function() { db.run('create table if not exists sample (info text);'); var stmt = db.prepare('insert into sample values(?)'); for (var i = 0; i < 10; i++){ stmt.run('i=' + i); } stmt.finalize(); db.each( 'select rowid as id, info from sample', function(err, row) { console.log(row.id + ': ' + row.info); } ); }); db.close();
DBベースの開発をする場合、もっと高級なORMを使った方が効率が良いことが多いが、今回作ろうとしているアプリはDB、テーブルを使い捨てる感じになるのでローレベルAPIを使えるこのライブラリがちょうどよさそう。 たぶんORMがほしかったらこちらのライブラリ。
Sequelize | The Node.js / io.js ORM for PostgreSQL, MySQL, SQLite and MSSQL
ひとまず動くところまで確認できたので、次の記事では開発環境を整える。