检测Node响应的Content-Type的最佳方法是什么?

ars1skjm  于 2023-05-28  发布在  Node.js
关注(0)|答案(1)|浏览(92)

我有一个连接中间件,它有条件地操作Node响应。一般来说,我不想操作这些响应,除非它们是HTML(注意,响应本身是其他资源的代理,可以是任何东西),特别是因为我的中间件重载了writeHeadwriteend,以便插入一些转换逻辑。最初似乎res.getHeader('Content-Type')是正确的方法,但结果几乎总是undefined。相反,我现在查看req.headers.accept值,然后尝试使用/^text\/html*./.test(accept)进行测试。有没有更好的办法?

2ic8powd

2ic8powd1#

您正在尝试做的事情称为Content sniffing或MIME嗅探。

  • 在执行任何嗅探之前,您应该了解如果您错误地识别内容类型,可能会出现的安全问题。*

WHATWG有一个MIME Sniffing Standard,但我还没有找到实现它的node.js包。
您可能会发现doc-sniff很有用(但我没有使用过)。

相关问题