如何在 Node.js 中请求图像和输出图像
How to request images and output image in Node.js
我尝试获取图像并显示在 url 上。我使用 request 模块。
比如我想获取图片https://www.google.com/images/srpr/logo11w.png
,显示在我的urlhttp://example.com/google/logo
.
或按<img src="http://example.com/google/logo" />
显示。
我尝试使用 request 和 express:
app.get("/google/logo", function(req, res) {
request.get("https://www.google.com/images/srpr/logo11w.png",
function(err, result, body) {
res.writeHead(200, {"Content-Type": "image/png"});
res.write(body);
res.end();
})
})
但响应不是图像。如何获取图像和输出?
请给我一些关于这个问题的建议。谢谢。
尝试在发出请求时指定 encoding: null
,以便响应主体是一个 Buffer
,您可以直接写入响应流:
app.get("/google/logo", function(req, res) {
var requestSettings = {
url: 'https://www.google.com/images/srpr/logo11w.png',
method: 'GET',
encoding: null
};
request(requestSettings, function(error, response, body) {
res.set('Content-Type', 'image/png');
res.send(body);
});
});
另一方面,如果您不指定 encoding: null
,body
参数将是一个字符串而不是缓冲区。
这似乎有点矫枉过正,您可以像这样直接让浏览器获取 url;
app.get("/google/logo", function(req, res) {
res.writeHead(302, {location:"https://www.google.com/images/srpr/logo11w.png"});
res.end();
})
我尝试获取图像并显示在 url 上。我使用 request 模块。
比如我想获取图片https://www.google.com/images/srpr/logo11w.png
,显示在我的urlhttp://example.com/google/logo
.
或按<img src="http://example.com/google/logo" />
显示。
我尝试使用 request 和 express:
app.get("/google/logo", function(req, res) {
request.get("https://www.google.com/images/srpr/logo11w.png",
function(err, result, body) {
res.writeHead(200, {"Content-Type": "image/png"});
res.write(body);
res.end();
})
})
但响应不是图像。如何获取图像和输出?
请给我一些关于这个问题的建议。谢谢。
尝试在发出请求时指定 encoding: null
,以便响应主体是一个 Buffer
,您可以直接写入响应流:
app.get("/google/logo", function(req, res) {
var requestSettings = {
url: 'https://www.google.com/images/srpr/logo11w.png',
method: 'GET',
encoding: null
};
request(requestSettings, function(error, response, body) {
res.set('Content-Type', 'image/png');
res.send(body);
});
});
另一方面,如果您不指定 encoding: null
,body
参数将是一个字符串而不是缓冲区。
这似乎有点矫枉过正,您可以像这样直接让浏览器获取 url;
app.get("/google/logo", function(req, res) {
res.writeHead(302, {location:"https://www.google.com/images/srpr/logo11w.png"});
res.end();
})