从另一台服务器获取node.js中的服务映像

Serve image in node.js fetched from another server

本文关键字:js node 映像 服务 获取 服务器 一台      更新时间:2023-09-26

我觉得这应该足够简单,但我很难做到这一点。我有一个前端命中的URL。这会触发节点从另一台服务器获取图像。接下来,我希望节点发送图像作为响应。这部分对我不起作用。

render: function(img,response){
    request.get(URL, function (error, res, body) {
        if (!error && res.statusCode == 200) {
            response.setHeader('Content-Type', 'image/png');
            response.writeHead(200);
            response.write(body);
            response.end();
        }
    });
}

我应该缓冲图像吗?

仅供参考,我尝试这样做是因为我需要在src路径中检索作为身份验证凭据的图像,并且我不希望这些图像暴露给用户。因此,如果你认为有比我尝试的更好的解决方案,请随时提出建议。:)

谢谢!

如果有人在寻找答案,而以上内容对您不起作用,请尝试这样的请求模块。

首先包括模块

var request = require('request')

然后:

request.get(URL, {encoding:'binary'},function(error, response){
             res.writeHead(200, {'Content-Type': 'image/jpeg', 'Cache-Control': 'no-cache' });
             res.end(response.body, 'binary');
        });

这将绕过URL中的图像,并将其打印到响应中。

这应该很好,但您遗漏了一个重要部分,将数据写回响应:)

你只需要添加:

response.write(body); 
response.end(); 

在写了标题之后。