Как сопоставить путь с регулярным выражением с путем к регулярному выражению? - PullRequest
1 голос
/ 21 мая 2019

У меня есть путь, чтобы получить пользователя по его идентификатору:

/user/{id}

Затем я преобразую его в регулярное выражение:

pathToRegexp(path.replace(/\{/g, ':').replace(/\}/g, ''))

А затем сравните его с

const matchedPaths = this.map.filter((obj: mapper) =>
  requestUrl.match(obj.regexp)
)[0]

Но когда я иду к /user/count, он думает, что я иду к /user/{id}.

1 Ответ

0 голосов
/ 21 мая 2019

Предполагается, что вы передаете в качестве параметра.Если тот же HTTP-глагол был использован.GET user / {id} -> GET use / regEx (что угодно) :: Он рассматривает regEx (что угодно) как параметр.

app.get('/:id', function (req, res) {
    res.send(req.params.id)
})

     app.get(/.*fly$/, function (req, res) {
    res.send('/.*fly$/')
})

app.get(/.*plane$/, function (req, res) {
    res.send('/.*plane$/')
})

only "/: id" -> Запустится::

в противном случае оба будут работать: *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...