CoffeeScriptで書いたExpressで簡単メンテナンスモード
CoffeeScriptで書いたExpress(Node.jsのSinatraみたいなもの)で簡単メンテナンスモードコンテストにチャレンジしてみます。
これまでのエントリー選手
CodeIgniterで簡単メンテナンスモード - localdisk
Pinocoで簡単メンテナンスモード - なんたらノート 第二期
Silex で簡単メンテナンスモード - ぷぎがぽぎ
symfony 1.4 で簡単メンテナンスモード - ぷぎがぽぎ
Express by CoffeeScript 選手の入場。
これが
app = (require 'express').createServer() app.get '/', (req,res)-> ... #以下実装
こうなりました。
app = (require 'express').createServer() app.all /.*/, (req,res) -> res.render 'maintenance' #ここ追加 app.get '/', (req,res)-> ... #以下実装
またはより丁寧に。
app = (require 'express').createServer() app.get /.*/, (req,res) -> res.render 'maintenance' #GETはすべてメンテナンスページ app.all /.*/, (req,rep) -> res.send 503 #その他は503エラー app.get '/', (req,res)-> ... #以下実装
メンテナンス中ページは別途必要ですが省略します。HTML以外の変更が2行で済むところだけ見てください。もはやここまで来ると、フレームワークというより言語の短さの問題にしかなってませんね。
ちなみに、試してないですが、Sinatraだとこんな感じになると思います。
... get %r{.*} { haml :maintenance } post %r{.*} { 503 } put %r{.*} { 503 } delete %r{.*} { 503 } # option とか head もいる? ...
まったく、いつもRubyは短かくなりすぎて、知ってる人にしか意味わからない感じなんだよなぁ。
あ、ドキュメント読んで想像で書いてる不届き者です。間違ってたら教えて偉い人よろしくおねがいします。