[英]Retrieve image from mongoDB
我正在使用gridfs ,所以在我的monDB中:
fs.chunks:
{
"_id" : ObjectId("542e684a8a1cec178a172673"),
"n" : 1,
"data" : BinData(0,"2N6DSSfbCN/LLacNDYrJUQDEZgimMUwFpQGoJP0RU19Bi4PM82DjrUnKhE/P9v7P8ZveD1oDpFBM0iml9NE3WQmAvYFoG+nhD73Jm4N9b4LpylaAN5Ef+gVdgGSTAfSUwOikXoVick5pSQCkRmTCU5NT9VVfjHdAx74/ZhFRj+TIRjzlAhzkACBElzgMwGCo7tX+FYrpQLJ5KRmXiwFFwsNtHHzXiK1eu+CG1FumhGpA/qdG8CdDgD1xUHEcerMGO/eLGR9ML7ni/VjXxWzqp2j5DG2/WuKNv7xd3Kz/vr0MctJhuaBIl35YrKhdLnzqDa0uDa6bm4jz+eNyAI2hQbayGo4kVPFe8W7wFpY7qfBvnB9kbocxfZSdADDUNwYaydpT8lIcKEN9XfQJOYZvHp0El"),
"files_id" : ObjectId("542e684a8a1cec178a172671")
}
fs.files:
{
"_id" : ObjectId("542e65378axdeckhb0"),
"uploadDate" : ISODate("2012-11-01"),
"length" : 15673,
"chunkSize" : 33222,
"md5" : "f66e6654854a28e3672cfhds334d223b55a1"
}
我在做:
var fileId = mongoose.Types.ObjectId(id);
var gridStore = new GridStore(db, fileId, 'r');
gridStore.open(function (err, gridStore) {
console.log(gridStore.uploadDate);
});
我有 :
2012-11-01
但是我想顯示我嘗試過的圖像 ,但是目前還不清楚:
app.get('/data/:imgtag', function(req, res) {
fileRepository.getFile( function(error,data) {
res.writeHead('200', {'Content-Type': 'image/png'});
res.end(data,'binary');
}, req.params.imgtag
);
});
app.listen(3000);
謝謝你的幫助!
首先,看看GridStore文檔 。 有兩種方法可以解決此問題:
一種是在gridStore.open()
函數內調用gridStore.read()
。 您可以將數據從回調發送到響應。
gridStore.read(function(err, data) {
res.write(data);
res.end();
});
回調中的data參數將包含您的文件。
另一個選擇是使用gridStore.stream()
並將流通過管道傳遞到響應。
gridStore.stream().pipe(res);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.