Node on Heroku

Heroku の Stacks に新しいバージョンが追加された。まだベータではあるけれど。新しい機能が幾つかあるけれど、その中で一番気になるのは node.js がサポートされるようになったこと(以前より試験的な運用はされていたけど)。

node.jsを使ったアプリの作成方法

基本的に Getting started with Node.js on Heroku/Cedar に書いてある通りでOK。そこでは express を使ったサンプルが書かれている。

ちょっとしたトラブル

ただ、はじめて動かしたときはなぜかうまくいかなかった。うまくいかなかったときの ps コマンドの結果は以下の通り。Command が空欄になってしまっていた。アクセスしても Application Error になる。

% heroku ps
Process       State               Command
------------  ------------------  ------------------------------
web.1         created for 5m  

ログを見てもプロセスが起動されていないことがわかる。

% heroku logs
2011-06-01T12:11:15+00:00 heroku[router]: Error H14 (No web processes running) -> GET high-ice-521.herokuapp.com/    

手順を振り返ってみてもドキュメント通りだった。しかたがないので一旦アプリを破棄し、 heroku (gem) をアップデートした (heroku-2.2.1)。その後もう一度試してみたところ、うまく動くようになった。
原因は何だったのだろう?heroku のバージョンが古かったのか、それとも他の原因なのか...。


追記
バージョンアップする前の heroku のバージョンは 2.0.4 だった。ここには run と scale コマンドを使う場合は、2.1.0 以上のバージョンにしろよとある。この辺りが関係あるのかしらん。