Express4のルータのパスからの値の取り方

パスに正規表現を書いて、グループでキャプチャするやり方。

app.get(/\/(\d+)$/, function(req, res, next) {
  res.send(req.params[0]);
});

[0]がちょっと格好悪い感じがする。名前で取りたい。

app.param('id', /\d+$/);
app.get('/:id', function(req, res, next) {
  res.send(req.params.id);
});

これで取れるようなことがドキュメントのapp.paramのところに書いてあるんだけど、何故かエラーで止まる。読み違いしてるんだろうか。

app.get('/:id(\\d+$)', function(req, res, next) {
  res.send(req.params.id);
});

これなら名前も付けられるし、正規表現も書ける。(文字列中なのでエスケープが若干増えるけど)

ついでに、Routerインスタンスを使っている場合はそれだけで済む。