Regex 多个条件GET参数

Regex 多个条件GET参数,regex,node.js,routing,express,params,Regex,Node.js,Routing,Express,Params,如何将这两个get请求合并为一个 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

如何将这两个get请求合并为一个

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");
});

我不是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网站上有一些信息:

作者还有一个基于Express.js路由的客户端库,因此您可以在那里找到更多信息。这就是我可以使用“?”示例的地方。该库名为page.js,可在以下位置找到: