JS

Node.jsでEvernoteのリマインダー通知機能を実装する

趣味で作っているLunchTimerというアプリを公開してそろそろ1ヶ月くらい経つと思いますが、このアプリは今のところろそこそこ好評で自分のチームでは毎日みんなで投票したりしてランチを決めています。社内でも少しずつ口コミで広まってきてる感もあります。 さて、実際に運用し始めてみると、急遽必要とされている機能が見えてきました。 それは、うっかり投票のし忘れをなんとかならないかw という点です。 業務に集中してると、気づいたら投票の時間過ぎてたなんてことがしばしばあります。 そんな時は、携帯に通知できたら良いなということでEvernoteのリマインダーの機能を使って実装することにしました。 (more…)

JS

node expressサーバーの起動をgruntから行う

node+express環境ではnode appでサーバー起動をする方法はdeprecatedで最近はnpm startコマンドが推奨されているみたいです。 npm startを発行するとpackage.jsonの中のscriptsに記載されたコマンドが発行され、通常express環境なら/bin/wwwというスクリプトが叩かれます。 package.json [js] "scripts": { "start": "node ./bin/www" }, [/js] wwwもjavascriptファイルで、中ではapp.jsを特定のポートに対してlistenしているだけです。 ただ、もしサーバーの起動をgruntに任せたい場合はどうしましょう。 (more…)

JS

node.js embedの簡易版DB NeDBを使ってみる

node+expressで簡単なアプリ開発をしていて、シンプルなデータベースを使えたらなぁと思い調べてみたらNeDBというプロジェクトをgithub上で発見しました。 やはりクイックに開発するためにMySQLやMongoDBのインストールから始めたくないですよね。。NeDBというのはまだ日本語のドキュメントも存在しなくあまり知られていないですが、そこそこ活発に開発されているようなのでどんなものかと使ってみました。 以下はnode+expressの初期セットアップ環境+underscore templatesを想定しています。詳しくは前回の記事を参照してください。 NeDBのAPIはMongoDBとそろえているみたいです。MongoDBでいうcollectionがNeDBでいうDataSourceにあたります。 dbのファイルをdata/groups.dbとし、メインのapp.jsで以下のような記述を冒頭に足します。注意点はapp.use('/', routes);の行より上に記述することです。(そうしないとrouter内にreq.dbが渡らない)。例がgroupなのはgroupの登録を想定したアプリを作ろうとしているからです。 app.js [js] var Datastore = require('nedb'); // create data collection var db = {}; db.groups = new Datastore({filename: 'data/groups.db', autoload: true}); // Make our db accessible to our router app.use(function(req,res,next){ req.db = db; next(); }); [/js] (more…)