I managed to save image to mongoDB with type Buffer. Together with the image is the username of the user currently logged in. MY problem now is to display the image(s) to the client's side. Much appreciated if it has a condition like "display image where username = 'currentUser_username'". I also have an 'uploads' folder where the images are saved. Please help. I'm a newbie in nodeJS. Please be very detailed in ur answer. Thanks
To send the image to the client, you need to save image binary data, image content type.
The structure of your schema should be like this.
var demoSchema = new mongoose.Schema({
imageData : { type: Buffer },
imageType : {type: String },
imageName : {type: String }
})
mongoose.model('Demo', demoSchema)
On saving your image to DB, save the content type too (must).
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();
When you retrieve from DB and send the contentType and mention the buffer as binary to the client.
Demo.findById(req.params.id, function (error, result) {
res.contentType(result.imageType);
res.end(result.image.buffer, "binary");
});
If you need some brief detail see here