2014-07-14 40 views
0

我目前有一個端點用於規避CORS,它接受任何圖像URL並以data-uri格式返回內容。這很好,但我認爲使用流式解決方案的效率會更高,其中響應是從圖像請求中構建爲流。節點將圖像URL轉換爲數據:使用流的圖像

這裏的工作,非流版本:

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) 
     } 
    }) 
    }) 

我的問題是,這將是更有效地管到request.GET中的結果,如果是這樣,怎麼會這樣看?

謝謝!

+0

的一人失蹤線FWIW是:VAR請求=要求( '請求')默認({編碼: null}) – fisch2

回答

0

我已經與谷歌嘗試這個映射例子,它的工作原理

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." + 
     "&markers=color:red%7Ccolor:red%7Clabel:C%7C40.718217,-73.998284&sensor=false"; 

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

github:request

+0

這絕對是我要去的;我認爲我的情況唯一的區別是管道需要在返回響應之前對請求數據進行變換。 – fisch2