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