Node.js 检测节点响应的内容类型的最佳方法是什么?

Node.js 检测节点响应的内容类型的最佳方法是什么?,node.js,connect,Node.js,Connect,我有一个连接中间件,它有条件地操纵节点响应。通常我不想操纵这些响应,除非它们是HTML(请注意,响应本身是其他资源的代理,可能是任何内容),特别是因为我的中间件重载了写头和写和结束,以便插入一些转换逻辑。起初,似乎res.getHeader('Content-Type')是正确的方法,但事实证明这几乎总是未定义的。相反,我现在查看req.headers.accept值,然后尝试使用/^text\/html*/.test(accept)对其进行测试。有更好的方法吗?您试图做的是调用或MIME嗅探

我有一个连接中间件,它有条件地操纵节点响应。通常我不想操纵这些响应,除非它们是HTML(请注意,响应本身是其他资源的代理,可能是任何内容),特别是因为我的中间件重载了
写头
结束
,以便插入一些转换逻辑。起初,似乎
res.getHeader('Content-Type')
是正确的方法,但事实证明这几乎总是
未定义的。相反,我现在查看
req.headers.accept
值,然后尝试使用
/^text\/html*/.test(accept)
对其进行测试。有更好的方法吗?

您试图做的是调用或MIME嗅探

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

有一个,但我还没有找到实现它的node.js包


你可能会发现它很有用(但我没有用过)。

很有趣。似乎没有办法在流媒体环境中使用doc sniff,对吧?