鉴于此路线配置:
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 = ?
答案 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++; }
此时尚未填充。- 使用请求路径查找路由
- ...