如何使用 JPG 数据字符串在 Express 中响应?
How to Respond in Express with a JPG Data String?
router.get("/photos", function(req, res) {
// Get the image
var image_request = await axios({
method: "get",
url: "https://i.stack.imgur.com/HQzUc.jpg"
});
console.log("Sending image");
console.log(image_request.headers);
res.set('Content-Type', image_request.headers["content-type"]);
res.set('Content-Length', image_request.data.length);
res.send(image_request.data);
}
我格式化 Get 响应的方式有问题。首先,我尝试排除两者 res.set(...)
,但最终 Postman 收到 image_request.data 作为带有 Content-Type="text/html; charset=utf-8"
的字符串
同时 res.set(...)
,在 Postman 上,我得到 Content-Type="image/jpeg; charset=utf-8"
,但图像格式似乎有误。
我尝试发送的回复有什么问题?除了我正在尝试做的事情之外,还有更好的选择吗?
修改axios请求的响应类型为arraybuffer
:
var image_request = await axios({
method: "get",
responseType: "arraybuffer", // right here
url: "https://i.stack.imgur.com/HQzUc.jpg"
});
参考:axios-config
router.get("/photos", function(req, res) {
// Get the image
var image_request = await axios({
method: "get",
url: "https://i.stack.imgur.com/HQzUc.jpg"
});
console.log("Sending image");
console.log(image_request.headers);
res.set('Content-Type', image_request.headers["content-type"]);
res.set('Content-Length', image_request.data.length);
res.send(image_request.data);
}
我格式化 Get 响应的方式有问题。首先,我尝试排除两者 res.set(...)
,但最终 Postman 收到 image_request.data 作为带有 Content-Type="text/html; charset=utf-8"
同时 res.set(...)
,在 Postman 上,我得到 Content-Type="image/jpeg; charset=utf-8"
,但图像格式似乎有误。
我尝试发送的回复有什么问题?除了我正在尝试做的事情之外,还有更好的选择吗?
修改axios请求的响应类型为arraybuffer
:
var image_request = await axios({
method: "get",
responseType: "arraybuffer", // right here
url: "https://i.stack.imgur.com/HQzUc.jpg"
});
参考:axios-config