根据文档this answer,路线方法可能不属于' HEAD'但我不明白为什么我不能改写这种行为。
答案 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
}