如何使用 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