【问题标题】:Returning image data via express route通过快速路线返回图像数据
【发布时间】:2019-11-28 13:25:42
【问题描述】:

我需要将图像数据返回到链接到快速路线的html元素。

我的 html <img> 标签看起来像这样

<img class="image" crossorigin="anonymous" src="/a/OIkhg2P2QoOV3qiOByvwxQ/xyz.png">

我的快速路线如下所示:这里的 img_url 是不同网站上图片的网址。

router.get('/a/:projectLocator/:fileName', function (req, res) {    
    const img_url = base64_decode(req.params.projectLocator) + req.params.fileName;
    request.get(img_url, (error, response, body) => {
        res.set({'Content-Type': 'image/png'});
        res.send(body);
});

此代码似乎不起作用,因为图像未在客户端上呈现。服务器返回没​​有任何错误。

我在这里做错了吗?我正确设置了 MIME 类型。

任何帮助都是无价的。

【问题讨论】:

    标签: html node.js image express blob


    【解决方案1】:

    request 有一个流接口。尝试使用它。在速度和内存上会更好。

    router.get('/a/:projectLocator/:fileName', function (req, res) {    
        const img_url = base64_decode(req.params.projectLocator) + req.params.fileName;
        res.set({'Content-Type': 'image/png'});
        request.get(img_url).pipe(res)
    });
    

    示例:https://repl.it/@ktilcu/images

    【讨论】:

    • 像魅力一样工作。谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-07
    • 1970-01-01
    • 2019-01-15
    • 2017-08-20
    • 1970-01-01
    • 2015-10-19
    • 2022-08-14
    相关资源
    最近更新 更多