0

これらの2つのgetリクエストを1つにマージするにはどうすればよいですか?

app.get('/:something/:else', function(req, res){
  res.render("something");
});

app.get('/:something', function(req, res){
  res.render("something");
});

私はこれを試しましたが、うまくいきませんでした。

app.get('(/:something|/:something/:else)', function(req, res){
  res.render("something");
});
4

1 に答える 1

2

100%確信はありませんが、次のことができると思います。

'/:something/:else?'

それ以外の場合は、ミドルウェア関数を変数に格納できます。

var m = function (req, res) { }
app.get('/one', m);
app.get('/two', m);

または、正規表現を使用できます。

app.get(/^\/commits\/(\w+)(?:\.\.(\w+))?$/, function(req, res){
  var from = req.params[0];
  var to = req.params[1] || 'HEAD';
  res.send('commit range ' + from + '..' + to);
});

Express.jsサイトにいくつかの情報があります:http://expressjs.com/api.html#app.VERB

著者は、Express.jsルーティングに基づくクライアント側ライブラリも持っているので、そこでより多くの情報を見つけることができるかもしれません。それは私が「?」例。ライブラリはpage.jsと呼ばれ、次の場所にあります:http: //visionmedia.github.com/page.js/

于 2012-11-07T16:18:42.123 に答える