Nodo.js + secas.js.Imagen personalizada si la imagen en el directorio específico no se encuentra

StackOverflow https://stackoverflow.com//questions/21006667

  •  21-12-2019
  •  | 
  •  

Pregunta

¿Hay alguna forma de hacer una imagen que regrese si los accesos de usuario /images/avatars/thumbnails/id.png y no existe?(Para usuarios sin avatares)

¿Fue útil?

Solución

Hay algunas maneras de hacer esto.Lo más sencillo que viene a la mente es una ruta como:

// in config/routes.js
'/images/avatars/thumbnails/:thumb': 'AvatarController.show'


// controllers/AvatarController.js
var fs = require('fs');
show: function(req, res, next) {
  var path = sails.config.appPath+'/assets/images/avatars/thumbnails/'+req.param('thumb');
  fs.exists(path, function(exists) {
     if (exists) return next();
  }
  fs.createReadStream(sails.config.appPath+'/assets/images/defaultAvatar.png').pipe(res);
}

Esto establece una acción personalizada para manejar las solicitudes de miniaturas Avatar.Si se encuentra el archivo, vuelve a la acción predeterminada para los activos estáticos (enviándolo al cliente).Si el archivo no existe, transmite su archivo Avatar predeterminado al cliente.

Otros consejos

Puede usar el módulo FS node.js FS

var fs = require('fs');
var imagePath = '/images/avatars/thumbnails/ID.png';
fs.open(imagePath, 'r', function(err,fd){
   if(err) imagePath = 'path/to/custom/image.png';
   else console.log('user image exists');
});

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top