How to request images and output image in Node.js
18,418
Try specifying encoding: null
when making the request so that the response body is a Buffer
that you can directly write to the response stream:
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);
});
});
On the other hand if you do not specify encoding: null
, the body
parameter will be a String instead of a Buffer.
Comments
-
kenticny almost 2 years
I try to get the image and display on a url. and I use request module.
For example, I want to get the image
https://www.google.com/images/srpr/logo11w.png
, and display on my urlhttp://example.com/google/logo
.Or display by
<img src="http://example.com/google/logo" />
.And I try to use request and 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(); }) })
but the response is not a image. How to get image and output?
Please give me some suggestion about the question. THANKS.