経緯

かなり前、Node.jsを使っていろいろ作ってましたが、RailsとかFuelPHPとかのFrameworkの知識がついた今、Expressをもうちょっとちゃんと理解できるような気がしたので、勉強してみた。

JavaScriptはいろいろおもしろいことができるので、好きなんですが、ただ唯一嫌いなのは、JavaScriptであることです。なので、CoffeeScriptで書いてやろうと思いました。

ただ、調べても出てくるやり方はexpressやらなんやらをグローバルにインストールするやり方で嫌だったので、ローカルにインストールするやり方を考えました。

やり方

mkdir express-test # 開発ディレクトリを作成
cd express-test
npm install express-generator coffee-script js2coffee
node_modules/express-generator/bin/express app # appはアプリケーションディレクトリ
find app -type f -name "*.js" | while read f; do node_modules/js2coffee/bin/js2coffee "$f" > "${f%.*}.coffee"; done
find app -type f -name "*.js" | xargs rm -f
cd app
npm install

app/bin/wwwの先頭に以下のコードを追記します。

// 先頭にこれを追記

require('coffee-script/register');

以下のコマンドを実行するとサーバーが起動してlocalhost:3000でアクセスできます。

bin/www

以下の部分をroutesの中と合致するように記述すると、ルーティングを作成できます。
イメージとしてRailsのroutes.rbとcontrollerを合わせたような感じかな?

routes = require('./routes/index')
users = require('./routes/users')
# 中略
app.use '/', routes
app.use '/users', users

まとめ

問題は何を作るか。