我目前有一个端点,用于绕过接收任何图像URL的CORS并以data-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)
}
})
})
我的问题是将request.get传递给结果会更有效吗?如果是这样,它看起来会怎么样?
谢谢!
答案 0 :(得分: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.012318" +
"&markers=color:red%7Ccolor:red%7Clabel:C%7C40.718217,-73.998284&sensor=false";
request.get(url).pipe(res);
});