Express - получить значение пути, соответствующего строке - PullRequest
0 голосов
/ 22 марта 2019

Вопрос

У меня есть несколько вложенных маршрутизаторов, и я хотел бы получить доступ ко всей строке, которой соответствует путь запроса.С английским немного сложно сказать, так что взгляните на этот код:

const express = require('express')
const app = express()
const router1 = express.Router()
const router2 = express.Router()

// set up router 2 paths
router2.get('/path2/:param2', (req, res, next) => {
  const someVar = req.something // the value I'll talk about in a second
  return res.status(200).send({ someVar })
})

// set up router1 paths
router1.use('/path1/:param1', router2)

// connect the routers behind a base url
app.use('/api/v1', router1)

app.listen(3000, function () {
  console.log('Example app listening on port 3000!')
})

Если бы я должен был сделать запрос GET с:

curl -X GET http://localhost:3000/api/v1/path1/myparam1/path2/myparam2

Я хочу, чтобы он вернулсятакой объект:

{
  "someVar": "/api/v1/path1/:param1/path2/:param2"
}

Context

У меня в приложении есть промежуточное ПО, которое регистрирует путь к кластеру эластичного поиска, и я бы хотел, чтобы кластер группировал пути по строке, которую онииспользуется для соответствия запросу, а не самому запросу.Таким образом, я могу получить визуальное представление о том, какие конечные точки запроса чаще всего поражаются.

1 Ответ

0 голосов
/ 22 марта 2019
// you need to set mergeParams: true on the router,
// if you want to access params from the parent router
var router1 = express.Router({mergeParams: true});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...