node.js で sqliteを扱う sqlite3-webapi-kit
2015.04.08
この記事は最終更新日から1年以上が経過しています。
お久しぶりな気が。。
日々、開発環境でnodeを扱っているのですが、sqliteも扱うことがあったので書いておきます!
node モジュールの
sqlite3-webapi-kit
https://www.npmjs.com/package/sqlite3-webapi-kit
がいい感じぽいのでその使い方などとなります。
sqlite
sqliteってなんですか。って方は過去の記事
https://www.webcyou.com/?p=3194
等を参照して頂ければと思います。
なにはともあれ、とりあえず、sample.dbを作成。
sqlite3 sample.db
テーブルを作成。
CREATE TABLE sample(id INTEGER PRIMARY KEY,name VARCHAR(255));
node sqlite とsqlite3-webapi-kitをインストール
npmでnodeモジュールのsqliteとsqlite3-webapi-kitをインストールします。
https://www.npmjs.com/package/sqlite3
https://www.npmjs.com/package/sqlite3-webapi-kit
npm install sqlite3
npm install sqlite3-webapi-kit
インストール完了しましたら準備OK!
公式サイトを参考に
https://www.npmjs.com/package/sqlite3-webapi-kit
モジュール読み込み
sqlited = require('sqlite3-webapi-kit');
基本サンプル
var sqlited = require('sqlite3-webapi-kit'); sqlited.open('/path/to/hoge.db3', function (err) { sqlited.listen(4983, function () { console.log('server start'); }); });
sqlite3.listenとなっているとどうもエラっていたので変更。
あと、
setHook(function)
こちら、「フック関数を指定しない場合はすべてのアクセスを許可します。」と記述されているのですが、どうも指定がないとエラってしまう。
公式サイトにあるようにこちらを記述。
sqlited.setHook(function (remoteAddress, request) { // ローカルネットワークのみ許可 return /^(192\.168\.|127\.0\.0\.1)/.test(remoteAddress); });
これでOK!
ターミナルから
curl http://localhost:4983/select?table=user
叩くなり、ブラウザでhttp://localhost:4983/select?table=user など叩くなりすると、resultがjsonで返ってきます。
{ "result": [ { "id": 1, "name": "taro", "sex": "male", "age": 30 }, { "id": 2, "name": "jiro", "sex": "male", "age": 25 }, { "id": 3, "name": "saburo", "sex": "male", "age": 20 } ] }
テーブルにデータ挿入する際も
http://localhost:4983/update?table=user&set=name=%27taro%27,age=20&conditions=flag%20is%20null
こんな感じで入っちゃいます。
ローカル環境でDB建てたい時はサクッと利用できますね。
これ使ってちょっとしたツールを作っていますので、近いうち紹介できればと!
Band’s
また、「Band’s」も日々更新しておりますのでよろしければ「いいね」押してもらえればと!!
ではでは!
また。