【问题标题】:Wildcard route in restifyrestify 中的通配符路由
【发布时间】:2014-06-25 19:54:33
【问题描述】:

来自快递,我有类似的路线

server.get('/some/route/*', function(req, res) { 

    // accessing wildcard 
    console.log(req.params[0]);

});

这样的通配符路由在 restify 中看起来如何?

在 restify 中,我还想通过 req.params[0] 访问 uri 的通配符部分。

谢谢

【问题讨论】:

    标签: regex node.js express restify


    【解决方案1】:

    这样的通配符路由在 restify 中看起来如何?

    回答: restify 采用的正则表达式与 express.js 略有不同。 '/some/route/*' in express 将是 '/some/route/.*' in restify

    在 restify 中,我还想通过 req.params[0] 访问 uri 的通配符部分。

    回答: restify 并没有像 express 那样将通配符部分放在 req.params 中,因此需要从 req.url 手动解析通配符部分,如下所示:

    var path = req.route.path;
    var wildcard = req.url.split(path.substring(0, path.lastIndexOf('.')))[1];
    

    因此,使用上面的代码,'/some/route/this/is/my/route' 的通配符部分将是 this/is/my/route

    【讨论】:

      【解决方案2】:

      这会有所帮助:

      var url = req.url,
          wildcardUrl = '';
      wildcardUrl = url.split('/some/route/')[1];
      
      //do something to wildcardUrl
      

      【讨论】:

        猜你喜欢
        • 2015-08-24
        • 2017-07-17
        • 1970-01-01
        • 2014-12-01
        • 1970-01-01
        • 2019-10-17
        • 2012-05-27
        • 2015-10-12
        • 2014-06-29
        相关资源
        最近更新 更多