【问题标题】:Express route regex exception快速路由正则表达式异常
【发布时间】:2018-08-29 19:39:49
【问题描述】:

我知道这可能是一个愚蠢的问题,但我不能让它工作,我试图匹配任何不匹配单词的路由,例如 api(排除 /api/*)但我不能让它工作:

'/^(?=\/).(?!api\/).*$'

这不起作用,然后我尝试了这个站点:http://forbeslindesay.github.io/express-route-tester/ 只是为了测试我匹配 / 并给我这个代码:

/^\/?$/i

然后我尝试了 express 但它不匹配/

Cannot GET /

那我猜代码有问题,而不是正则表达式,你有什么提示吗?

app.get('/^\/?$/i', function(req, res) {

【问题讨论】:

    标签: javascript node.js regex express routes


    【解决方案1】:

    在这里使用正则表达式似乎不是正确的方法,您似乎更想使用参数化路由来处理受保护的路由。

    app.get('/:directory/:page', function(req, res, next){
      if(req.params.directory.toLowerCase() == 'api') res.redirect('/') //or whatever you want it to do
      else {
        //whatever your default action is
      }
    }
    

    如果您想排除几个并以相同的方式处理它们,您可以让您的if 语句使用正则表达式:

    if(/^(api|other_directory|whatever_else)$/i.test(req.params.directory)) res.redirect('/')
    

    【讨论】:

      猜你喜欢
      • 2016-01-15
      • 2013-10-22
      • 1970-01-01
      • 2019-02-24
      • 1970-01-01
      • 2020-06-08
      • 1970-01-01
      • 1970-01-01
      • 2016-03-30
      相关资源
      最近更新 更多