sql >> Base de Datos >  >> NoSQL >> MongoDB

Almacene el archivo de imagen en datos binarios en el esquema de mangosta y muestre la imagen en forma html

En primer lugar, debe convertir los datos del búfer a base64. Puede hacerlo en back-end o front-end, no importa. Simplemente use yourBufferData.toString('base64') . Entonces puedes usarlo.

Sin embargo, sugeriría otra forma de almacenar imágenes en lugar de almacenar datos binarios. Suponiendo que usa nodejs. Puede crear una imagen en un repositorio con esos datos binarios usando fs.writeFile método. Luego puede almacenar esa ruta de imagen en el registro (db). Después de eso, simplemente coloque la ruta del archivo en ng-src="ruta del archivo que guardó". Aquí está el ejemplo que uso:

var path = 'upload/profiles/' +req.body.userId + '_profile.jpg';
      fs.writeFile(path, base64data, function(err) {
        if (err) return next(err);
        User.findByIdAndUpdate({
          _id: req.body.userId
        }, {
          $set: {
            profileImg: 'upload/profiles/' +req.body.userId + '_profile.jpg'
          }
        }, function(err, user) {
          if (err) return next(err);
          return res.send(user);
        });
      });

  <img ng-src="savedpath">