Node.jsとExpressとheroku

こないだNode.js+Expressでシンプルなサイト作ってherokuにリリースしました。
(サイトの内容はRailsだったりします)

んで、デフォルトのExpressのnew(だったっけ?)だと、herokuにリリースするまで変更がわりとあったので、メモ代わりに書いておきます。

動作環境:

  • Mac OS X 10.7.2 Lion
  • Homebrew 0.8.1
  • node 0.6.15

ソース:
https://github.com/satomicchy/RailsHackathon2012

サイト:
http://railshackathon2012.herokuapp.com/

変更点:

  • app.jsをweb.jsにファイル名変更
  • web.js(app.js)内のapp.listenにport追加
-app.listen(3000, function(){
+var port = process.env.PORT || 3000;
+
+app.listen(port, function(){
   console.log("Express server listening on port %d in %s mode", app.address().port, app.s
 });
  • プロジェクトディレクトリ直下にProcfileという名前のファイル追加(中身は以下の一行のみ)
web: node web.js
  • package.jsonの編集
-    "name": "application-name"
+    "name": "railshackathon2012"
   , "version": "0.0.1"
-  , "private": true
   , "dependencies": {
       "express": "2.5.8"
     , "jade": ">= 0.0.1"
-    , "ejs": ""
-    , "less": ""
-    , "sequelize": ""
-    , "passport": ""
-    , "passport-twitter": ""

全部が全部ホントにこうしないといけないかは、ひとつずつ試したわけではないので、結果的にこうなった可能性もあります。