0
我有這樣的代碼的NodeJS:用快遞(Multer)發送圖片
app.get('/imgs/:id', function(req, res) {
// Validate that req.params.id is 16 bytes hex string
// Get the stored image type for this image
var stream = fs.createReadStream(path.join(UPLOAD_PATH, req.params.id));
stream.on("readable", function() {
res.setHeader('Content-Type', "image/jpeg")
stream.pipe(res)
})
stream.on('error', (e) => {
res.redirect(404, "404")
})
});
現在的問題是,我總是得到的
Error: Can't set headers after they are sent.
一個錯誤,因爲我用了res.setHeader
功能。 但是,我不知道如何解決它。假設我想在一個頁面中使用,顯然res.send()
函數已經很好, <img src="imgs/pic">
,那麼我必須將這個頁面請求的標頭設置爲"image/jpeg"
,否則瀏覽器不會知道它是一個圖像,並贏得'不要將它表現爲一個。
那我該怎麼辦?
的'readable'事件可以被髮送多次,這是造成錯誤,但使用試試這個代碼'res.sendFile()'作爲答案建議可能是一個容易得多。 – robertklep