我有这段代码
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")
})
});
现在的问题是我总是得到错误
错误:发送后无法设置标头。
因为我使用了res.setHeader
函数。
但是,我不知道如何解决它。假设我想在一个页面中使用,显然res.send()
函数很好,
<img src="imgs/pic">
,然后我必须将此页面请求的标头设置为"image/jpeg"
,否则浏览器不会知道它是图像,也不会将其显示为一个图像。
那我该怎么办?
答案 0 :(得分:0)
检查快速回复文档here。试试这段代码
app.get('/imgs/:id', function (req, res) {
res.sendFile(req.params.id, {root: UPLOAD_PATH, headers: {'Content-Type': 'image/jpeg'}}, function (err) {
if(err) throw err;
else console.log('sent')
})
})