2017-04-10 116 views
0

我设法将图像保存到类型为Buffer的mongoDB。与图像一起是当前登录用户的用户名。现在,我的问题是将图像显示在客户端。非常感谢,如果它有一个像“显示图像,其中用户名='currentUser_username'”。我还有一个保存图像的“上传”文件夹。请帮忙。我是nodeJS的新手。请在回答中详细说明。谢谢Node.js - 从MongoDB显示图像

+0

交一些代码或到目前为止你已经尝试了逻辑... –

+0

只需把该URL的',你是好去。 – ickyrr

回答

0

要发送图像到客户端,您需要保存图像二进制数据,图像内容类型。

您的模式结构应该是这样的。

var demoSchema = new mongoose.Schema({ 
    imageData : { type: Buffer }, 
    imageType : {type: String }, 
    imageName : {type: String } 
}) 

mongoose.model('Demo', demoSchema) 

将图像保存到数据库时,请保存内容类型(必须)。

var data = fs.readFileSync(incomingImage.path); 
var input = new Demo(): 
input.image = new MongoDb.Binary(data); 
input.imageType = incomingImage.type; 
input.imageName = incomingImage.name; 

input.save(); 

从DB中检索并发送contentType并将缓冲区作为二进制提及客户端。

Demo.findById(req.params.id, function (error, result) { 
    res.contentType(result.imageType);  
    res.end(result.image.buffer, "binary"); 
}); 

如果你需要一些简单的细节见here

+0

非常感谢你的回答。这些都有帮助。我会尝试所有这些:) –