Mongo と GridFS を使用して画像を保存する nodejs アプリがあります。これらの画像をNode.js経由でブラウザに表示しようとしています(エクスプレスフレームワークを使用)。
私は現在使用しています:
res.writeHead(200, {'Content-Type': 'image/jpeg' });
res.end(imageStore.currentChunk.data.buffer, 'binary');
imageStore は、新しい GridStore を作成して gridStore.open(...) を呼び出した後の gridStore オブジェクトです。
var gridStore = new GridStore(self.collection.db, doc._id, doc.filename, 'r', {
chunk_size: doc.chunkSize
});
gridStore.open(callback);
これは正しい方法ではないと確信しています。壊れた画像が表示されます。助言がありますか?
ありがとう!
編集:
mongodb ネイティブ 1.0.2 に更新した後、次を使用してデータをストリーミングしようとしています。
res.contentType("image/jpeg");
var imageStream = imageStore.stream(true);
imageStream.pipe(res);
imageStore は使用後のオブジェクトですgridStore.open(function(err, imageStore){ })