Получить фактический маршрут Коа

Я новичок в коа. Мне нужно получить фактический маршрут в запросе koa.

Пример 1: Если я попаду на маршрут /user и получу исходный URL-адрес ctx /user/.

Пример 2: Если я попаду на маршрут user/:id и получу исходный URL-адрес ctx /user/1.

Я пытаюсь получить путь, как

exports.checkAuth = async ctx => {
   console.log(ctx.originalUrl); // return -> /user/1
   console.log(ctx.path); // return -> /user/1
 };

Я хочу получать фактический путь маршрута, например user/:id, в каждом запросе.

В экспресс-маршруте получите фактический путь, подобный этому

 app.get('/user/:id', function userIdHandler(req, res) {
     console.log(req.route);
 });

Вывод:

{ path: '/user/:id',
stack:
   [ { handle: [Function: userIdHandler],
   name: 'userIdHandler',
   params: undefined,
   path: undefined,
   keys: [],
   regexp: /^\/?$/i,
   method: 'get' } ],
methods: { get: true } }

person Sakthivel    schedule 15.10.2018    source источник


Ответы (1)


В koa.js при сопоставлении маршрута его путь доступен по адресу ctx._matchedRoute, а если он указан, то имя доступно по адресу ctx._matchedRouteName.

ctx._matchedRoute -> который вернет в вашем случае user/:id

Просто имейте в виду, что ctx._matchedRoute является частью koa-router.

person tpopov    schedule 23.10.2018