Hapi请求未解决的路径在哪里?

时间:2016-03-11 22:30:35

标签: hapijs

鉴于此路线配置:

server.route
method: 'GET'
path: "/app/usage/{id}"
handler: (req, reply) ->
  ...

有没有办法以编程方式从预处理程序中的请求对象中获取未解析的路径/ app / usage / {id}?我知道如何获得已解决的路径,例如/ app / usage / 1234,但我想要未解决的路径(理想情况下无需使用字符串操作重建它)。

server.ext 'onPreHandler', (request, reply) ->
  resolvedPath = request.path
  unresolvedPath = ?

1 个答案:

答案 0 :(得分:2)

通过"未解决的路径",我假设您指的是使用server.route(options)创建路线时指定的request.route选项?

路由表中与请求匹配的路由条目放在server.route({ method: 'GET', path: '/app/usage/{id}', handler: function (request, reply) { const route = request.route; const routePath = route.path; // '/app/usage/{id}' reply('hello') } }); 中供您检查:

onPreHandler

它可以在request lifecycle中使用,因此您也可以在server.ext('onPreHandler', function (request, reply) { const route = request.route; const routePath = route.path; // Whatever your route path is for the request reply.continue(); }); 扩展功能中获取它:

request.route.path

注意请注意,您无法在onRequest扩展功能中查看onRequest,因为在路由匹配之前会调用此功能。来自relevant section in the API docs

  
      
  • request.route扩展点      
        
    • for (int i = 0; tempLine[i] != '\0'; i++) { ss >> students[stuCount].score[assignments]; if (tempLine[i] == ' ') assignments++; } 此时尚未填充。
    •   
  •   
  • 使用请求路径查找路由
  •   
  • ...
  •