【发布时间】:2019-12-21 00:57:59
【问题描述】:
根据文档https://hapijs.com/api/16.0.1#route-configuration,路由方法可能不是“HEAD”类型,但我不明白为什么我不能覆盖该行为。
【问题讨论】:
标签: hapijs
根据文档https://hapijs.com/api/16.0.1#route-configuration,路由方法可能不是“HEAD”类型,但我不明白为什么我不能覆盖该行为。
【问题讨论】:
标签: hapijs
HEAD 路由是使用您定义的每个 GET 路由自动创建的。因此,您几乎没有理由需要自己定义。
如果您想优化 HEAD 请求的处理,只需检查您的 GET 处理程序的方法,如果是
head,则返回带有正确标头的空响应。这仅适用于一些非常昂贵的 GET 请求,您希望客户端直接使用 HEAD。不支持它的主要原因是,我预计很少有开发人员会使用它,但它会为每个 HEAD 请求添加额外的查找。
这个问题已经解决了on Github。
【讨论】:
至于进一步详细说明@Ankh 的响应,您可以查看请求method 属性以缩写 GET 处理程序上的响应:
const getHandler = (req, h) => {
// HTTP status 204 -> NO CONTENT
if (req.method as string === 'head') return h.response().code(204)
// continue the GET handler logic here
}
【讨论】: