2017-01-23 38 views
1

我有一個連接中間件,它有條件地操縱節點響應。通常我不想操縱這些響應,除非它們是HTML(注意響應本身是其他資源的代理,可能是任何東西),尤其是因爲我的中間件過載了writeHeadwriteend以插入某些變換邏輯。最初它似乎是res.getHeader('Content-Type')將是正確的方法,但事實證明這幾乎總是undefined。相反,我現在正在查看req.headers.accept值,然後嘗試用/^text\/html*./.test(accept)進行測試。有沒有更好的方法來做到這一點?檢測節點響應的內容類型的最佳方法是什麼?

回答

1

你要做的是叫Content sniffing或MIME嗅探。

在您進行任何嗅探之前,您應該瞭解如果您錯誤識別內容類型可能出現的安全問題。

WHATWGMIME Sniffing Standard,但我還沒有找到一個實現它的node.js包。

您可能會發現doc-sniff有用(但我沒有使用它)。

+0

有趣。似乎沒有辦法在流式上下文中使用doc-sniff,對吧? – maxcountryman

相關問題