Logré guardar la imagen en mongoDB con el tipo Buffer. Junto con la imagen está el nombre de usuario del usuario que ha iniciado sesión actualmente. MI problema ahora es mostrar la(s) imagen(es) al lado del cliente. Muy apreciado si tiene una condición como "mostrar imagen donde nombre de usuario = 'currentUser_username'". También tengo una carpeta de 'cargas' donde se guardan las imágenes. Por favor ayuda. Soy un novato en nodeJS. Sea muy detallado en su respuesta. Gracias
Para enviar la imagen al cliente, debe guardar los datos binarios de la imagen, tipo de contenido de la imagen.
La estructura de su esquema debería ser así.
var demoSchema = new mongoose.Schema({ imageData : { type: Buffer }, imageType : {type: String }, imageName : {type: String } }) mongoose.model('Demo', demoSchema)Al guardar su imagen en la base de datos, guarde también el tipo de contenido (debe).
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();Cuando recupera de la base de datos y envía el tipo de contenido y menciona el búfer como binario al cliente.
Demo.findById(req.params.id, function (error, result) { res.contentType(result.imageType); res.end(result.image.buffer, "binary"); });Si necesitas algún breve detalle mira aquí