Node.js zeigt Bilder aus Mongos GridFS an
Ich habe eine NodeJS-App, die Mongo und GridFS zum Speichern von Bildern verwendet. Ich versuche, diese Bilder über Node.js (unter Verwendung eines Express-Frameworks) im Browser anzuzeigen.
Ich benutze derzeit:
res.writeHead(200, {'Content-Type': 'image/jpeg' });
res.end(imageStore.currentChunk.data.buffer, 'binary');
imageStore ist das gridStore-Objekt nach dem Erstellen eines neuen GridStore und dem Aufrufen von gridStore.open (...)
var gridStore = new GridStore(self.collection.db, doc._id, doc.filename, 'r', {
chunk_size: doc.chunkSize
});
gridStore.open(callback);
Ich bin mir sicher, dass dies nicht der richtige Weg ist. Es wird ein fehlerhaftes Bild angezeigt. Irgendwelche Vorschläge?
Vielen Dank!
Bearbeiten:
Nach dem Update auf mongodb native 1.0.2 versuche ich, die Daten mit folgendem Befehl zu streamen:
res.contentType("image/jpeg");
var imageStream = imageStore.stream(true);
imageStream.pipe(res);
imageStore ist das Objekt nach der VerwendunggridStore.open(function(err, imageStore){ })