为什么我不能在Hapi创建HEAD路线?

时间:2016-12-15 15:51:47

标签: hapijs

根据文档this answer,路线方法可能不属于' HEAD'但我不明白为什么我不能改写这种行为。

2 个答案:

答案 0 :(得分:4)

使用您定义的每个HEAD路由自动创建

GET个路由。因此,您无需定义自己的原因。

  

如果要优化对HEAD请求的处理,只需检查方法的GET处理程序,如果是head,则返回带有正确标头的空响应。对于一些非常昂贵的GET请求,这是值得做的,您希望客户直接使用HEAD。

     

不支持它的主要原因是我希望很少有开发人员使用它,但它会为每个HEAD请求添加额外的查找。

这已经得到解决on Github

答案 1 :(得分:0)

要进一步详细说明@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
}