Javascript 节点将图像URL转换为数据:使用流的图像

Javascript 节点将图像URL转换为数据:使用流的图像,javascript,node.js,express,stream,Javascript,Node.js,Express,Stream,我目前有一个端点,用于绕过CORS,CORS接收任何图像URL并以数据uri格式返回内容。这工作得很好,但我认为使用流式解决方案会更有效率,其中响应被构建为来自图像请求的流 以下是工作的非流版本: app.get('/api/image/convert', function (req, res) { // TODO: use request piping for significantly more efficient throughput request.get(req.q

我目前有一个端点,用于绕过CORS,CORS接收任何图像URL并以数据uri格式返回内容。这工作得很好,但我认为使用流式解决方案会更有效率,其中响应被构建为来自图像请求的流

以下是工作的非流版本:

  app.get('/api/image/convert', function (req, res) {
    // TODO: use request piping for significantly more efficient throughput
    request.get(req.query.url, function (error, response, body) {
      if (!error && response && response.statusCode >= 200 && response.statusCode < 300) {
        var data = "data:" + response.headers["content-type"] + ";base64," + new Buffer(body).toString('base64')
        res.send(data)
      } else {
        res.send((response && response.statusCode) || 500, error)
      }
    })
  })
app.get('/api/image/convert',函数(req,res){
//TODO:使用请求管道显著提高吞吐量
get(req.query.url,函数(错误,响应,正文){
如果(!error&&response&&response.statusCode>=200&&response.statusCode<300){
var data=“data:”+response.headers[“content type”]+“base64”+新缓冲区(body).toString('base64'))
res.send(数据)
}否则{
res.send((response&response.statusCode)| | 500,错误)
}
})
})
我的问题是,通过管道发送请求是否会更有效。获得结果,如果是,结果会如何


谢谢

我已经用谷歌地图的例子尝试过了,效果不错

var request = require('request');
app.get('/', function(req, res){
    var url = "http://maps.googleapis.com/maps/api/staticmap?center=Brooklyn+Bridge,New+York,NY&zoom=13&size=600x300&maptype=roadmap" +
        "&markers=color:blue%7Clabel:S%7C40.702147,-74.015794&markers=color:green%7Clabel:G;%7C40.711614,-74.012318" +
        "&markers=color:red%7Ccolor:red%7Clabel:C%7C40.718217,-73.998284&sensor=false";

request.get(url).pipe(res);
});

缺少的一行fwiw是:var request=require('request')。默认值({encoding:null})这绝对是我想要的;我认为在我的例子中唯一的区别是管道需要在返回响应之前对请求数据应用转换。