0

我是koa的新手。我需要在 koa 请求中获得实际路线。

示例 1:如果我到达一条路线 /user并获得 ctx 原始 url /user/

示例 2:如果我打了一条路线user/:id,我得到了 ctx 原始 url /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 } }
4

1 回答 1

1

在 koa.js 中,当路由匹配时,其路径可用,ctx._matchedRoute如果命名,则名称可用ctx._matchedRouteName

ctx._matchedRoute-> 这将在您的情况下返回user/:id

请记住,ctx._matchedRoute 是koa-router.

于 2018-10-23T11:30:21.143 回答