我无法将http.get图像转换为base 64

时间:2014-11-27 14:01:41

标签: node.js meteor

app.getImage = function() {

    var image = Meteor.http.get("https://turtlerock-discourse.global.ssl.fastly.net/user_avatar/talk.turtlerockstudios.com/takran/45/879.png", {

    });
    var prefix = "data:image/png;base64,";
    var imagebase64 = new Buffer(image.content, 'binary').toString('base64');
    imagebase64 = prefix + imagebase64;

    console.log(imagebase64);
    return imagebase64;
}

但我没有看到结果, 任何帮助? 这是错误的虚拟文本。

2 个答案:

答案 0 :(得分:2)

a pure Meteor solutions:

    var response = HTTP.call('GET', url,{npmRequestOptions: { encoding: null }})

    var data = "data:" + response.headers["content-type"] + ";base64," + new Buffer(response.content).toString('base64');

答案 1 :(得分:0)

这就是我解决这个问题的方法。

app.getImage = function(){

var myrequest = request.defaults({ encoding: null });

var fut = new Future(); 
var options = {
    "url" : "https://any.domain.com/any.png"
}
myrequest.get(options, function (error, response, body) {
    if (!error && response.statusCode == 200) {
        var data = "data:" + response.headers["content-type"] + ";base64," + new Buffer(body).toString('base64');
        fut.return(data);
    }
    else
        fut.return(null);
});

return fut.wait();

}

我假设这个解决方案应该附带流星代码本身, 但事实并非如此, 我不得不使用nodejs方法来做到这一点。

我仍然会等待有人根据纯粹的流星方式发布答案。