Express Route Regex与问号匹配

时间:2017-09-23 17:47:30

标签: regex express

我一直试图匹配以下网址:

  

http://localhost:3000/?uid=Nf83K3L

app.get(/^\/\?uid.+/, userController.redirectUid),但它不起作用。

我试图用\来逃避问号?同样,但仍然无法奏效。我做错了什么,或者我不允许在快速路线上匹配问号?

2 个答案:

答案 0 :(得分:1)

您不需要克拉(^),因为它意味着/应该是您要匹配的字符串的开头。

app.get(/\/\?uid.+/, userController.redirectUid).

希望这可以解决您的问题。

答案 1 :(得分:0)

我不确定为什么app.get无法正常工作,但设法通过app.use解决它并将其与req.OriginalUrl相匹配。

工作代码:

app.use((req, res, next) => {
  if (req.originalUrl.match(/^\/\?uid.+/)) {
    res.redirect('/uid') //I just redirected directly without calling the middleware
  }
}