読者です 読者をやめる 読者になる 読者になる

expressのルーティング

express2.5からexpressコマンドでプロジェクトつくると./routesってディレクトリにルーティングが書かれるようになってる。規模が大きくなるほど煩雑になるので、ルーティングのファイルは分けたほうがいいと思うけど、これでも個人的にはやや微妙。

var express = require('express')
  , routes = require('./routes')

...

app.get('/', routes.index);

こんな感じになってるわけだけど、これだとルーティングが増えてコントローラーのファイルをわけたいときに、毎回requireも書かないといけない。つまり

var express = require('express')
  , routesIndex = require('./routes/index')
  , routesEntry = require('./routes/entry')
  , routesAbout = require('./routes/about')
  , routesHoge = require('./routes/hoge')
  , routesFuga = require('./routes/fuga');

...

app.get('/', routesIndex.index);
app.get('/entry', routesEntry.index);
app.post('/entry', routesEntry.create);
app.get('/about', routesAbout.index);
app.get('/hoge', routesHoge.index);
app.get('/fuga', routesFuga.index);
app.post('/fuga', routesFuga.create);
app.put('/fuga', routesFuga.update);
app.del('/fuga', routesFuga.del);

ルーティングの一覧は見やすくて、app.jsに全部書くよりはだいぶいいと思うけど、なんか二度手間だしもうちょい楽したい。

こんな感じがいいのだろうか。expressっぽくないけど。
https://gist.github.com/1354601

もしくはfs.readdirとかでコントローラーのファイル探してrequireするとかでもいいかな。悩み中