我有一个使用Mongo和GridFS存储图像的Node.js应用程序。 我正在尝试通过Node.js(使用express框架)将这些图像显示到浏览器。
我目前正在使用:
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 native 1.0.2后,我正在尝试使用以下方法流式传输数据:
res.contentType("image/jpeg");
var imageStream = imageStore.stream(true);
imageStream.pipe(res);
gridStore.open(function(err, imageStore){ })
后,imageStore
是一个对象。