【问题标题】:multiple conditional GET parameters多个条件 GET 参数
【发布时间】:2012-10-27 17:41:11
【问题描述】:

如何将这两个 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");
});

【问题讨论】:

    标签: regex node.js routing express params


    【解决方案1】:

    我不是 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/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-13
      • 2017-04-19
      • 2016-09-19
      • 2013-04-14
      • 2013-12-24
      • 1970-01-01
      • 2021-11-14
      • 2015-08-16
      相关资源
      最近更新 更多