Node.js(Express)でフィードアグリゲータを作り始め
今日の勉強会でNode.js(Express)でWebsocketなアプリの話を聞いたので、
シコシコ作ってたSinatra製のフィードアグリゲータ(kaakaa/INFOMATOR)をNode.js(Express)に移行してみる。
F5アタックでSinatraのフィードアグリゲータをSATSUGAIされたのも移行してみようと思ったきっかけの一つ…。
Websocket使えばサーバの負荷減って、F5アタックにも多少耐えられるようになるんじゃないかと。
まだまだ完成とは程遠いけど、Haml使うのにちょっとハマったので備忘録。
Expressでhaml使うのに、visionmedia/consolidate.jsを使ってる。
visionmedia/haml.jsを使おうとしたけど、上手く動かなかったので。
consolidateを使うための設定は下記。
var engines = require('consolidate'); app.engine('haml', engines.haml);
また、下記の設定を記述するとapp.jsの中でhamlファイルを指定する時に拡張子'.haml'を省略できる。
app.set('view engine', 'haml');
実際にhamlを呼び出すには
app.get('/', function(req, res) { res.render('index', { sites: [ { 'url': 'http://example.com', 'title': 'hoge' } ] }); });
などとする。
これで、sitesという連想配列の配列を引数にindex.hamlを呼び出すことが出来る。
すこしハマったのが、rubyのhamlとは違って、hamlファイル内でタグの属性を指定する時に
%a{:href => site['url']}
という記述が使えず、
%a{href: site['url']}
としなくてはいけないところ。
前者はruby特有の記述なんだろう。