0

如何将这两个获取请求合并为一个?

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 回答