Wie speichere ich ein binäres Objekt in redis mit node?
Ich versuche, ein binäres Objekt in redis zu speichern und es dann als Bild zurückzuliefern.
Hier ist der Code, mit dem ich die Daten speichere:
var buff=new Buffer(data.data,'base64');
client.set(key,new Buffer(data.data,'base64'));
Hier ist der Code zum Ausgeben der Daten:
client.get(key,function(err,reply){
var data = reply;
response.writeHead(200, {"Content-Type": "image/png"});
response.end(data,'binary');
});
Die ersten paar Bytes der Daten scheinen beschädigt zu sein. Die magische Zahl ist falsch.
Haben Sie experimentiert:
wenn ich folgendes tue:
var buff=new Buffer(data.data,'base64');
console.log(buff.toString('binary'));
Ich bekomme das:
0000000: c289 504e 470d 0a1a 0a00 0000 0d49 4844
wenn ich das tue
var buff=new Buffer(data.data,'base64');
console.log(buff);
Ich bekomme folgendes:
Puffer 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 00 00 00
Ich bin nicht sicher, woher die c2 kommt