Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

app.route(path)でパスの関係を見やすくする

expressアプリを作っていくと、そのうち構造が地獄めいてきます。
そうなると、どこ弄っているか分からなくなる事、結構ありますよね。
あるいは、単純なルートのタイポでエラー吐いて、解析に30分かかったりとか。
こういう時は、app.route(path)でパスの関係を見やすくする事ができます。

実際のところ

前回の記事では/user/:id/:pageの挙動がバラバラでした。
routeを使うと、一つのネストにまとめこむ事ができます。

var express = require('express');
var app     = express();

app.use('/data', express.static('data'));
app.set('view engine', 'jade');

// 中略

app.route('/user/:id/:page')
    .get(function (req, res, next) {
	console.log('req.path  ', req.path); //(4)
	next();
    })
    .get(function (req, res) {
	console.log('Coming the render section.'); //(5)
	var responseText = 'Your page name: ' + req.params.page + " !"; 
	res.render('index', { title: 'Our Apps!', message: responseText});
	res.end();
    });

app.listen(3000, function () {
  console.log('Example app listening on port 3000!');
});

大分可視性が上がりましたね。
これの使用はコーディング規約にしておいた方が良さそうです。