我是mongodb的新手。
我使用以下代码片段存储二进制数据:
var data = fs.readFileSync(path);
var image = new mongodb.Binary(data);
//open connection/collection
var record = {picname: id, content: image };
collection.save(record, {safe: true}, function(err,result){
if(err)
console.log(err.stack);
});//save
我能在数据库中查看记录大小。其中包含二进制数据。记录大小与文件大小也匹配。我很高兴。
现在,从Mongo中检索相同的二进制数据并尝试将其发送作为响应:
var record = {picname: id};
collection.findOne(record, function(err,result){
if(err)
console.log(err.stack);
else
{
console.log('before read from db for download.');
//HOW TO READ IMAGE/BINARY DATA FROM RESULT?
//I need to send result in response. Any Idea?
console.log('before read from db for download');
}
});
我正在使用以下代码片段发送二进制数据。但并非所有文件都能正常工作。可能是什么问题:
collection.findOne(record, function(err,result){
if(err)
console.log(err.stack);
else
{
console.log('before read from db for download. result: [' + result.picname + " ], type: " + result.imagetype);
res.end(result.content.buffer, "binary");
console.log('Responded SUCCESS: ' + id );
}
});//findOne
请告诉我如何检索并通过响应发送。提前感谢。DD.
file.stream(true).pipe(res);
- vedi