检测节点响应的内容types的最佳方法是什么?

我有一个连接中间件,有条件地操纵节点响应。 通常我不想操作这些响应,除非它们是HTML(请注意,响应本身是其他资源的代理,可能是任何东西),尤其是因为我的中间件重载writeHeadwriteend以插入一些变换逻辑。 最初似乎res.getHeader('Content-Type')是正确的方法,但事实certificate这几乎总是undefined 。 相反,我正在查看req.headers.accept值,然后尝试使用/^text\/html*./.test(accept)来testing它。 有没有更好的方法来做到这一点?

你所要做的就是所谓的内容嗅探或MIME嗅探。

在进行任何嗅探之前,如果您错误地识别内容types,则应了解可能出现的安全问题。

WHATWG有一个MIME嗅探标准 ,但是我还没有find一个实现它的node.js包。

你可能会发现文档嗅探有用(但我没有使用它)。