Nœud.js + voiles.js.Image personnalisée si l'image dans un répertoire spécifique n'est pas trouvée

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

  •  21-12-2019
  •  | 
  •  

Question

Y a-t-il un moyen de rendre une image de retour d'image si l'utilisateur accède à /images/avatars/thumbnils/id.png et il n'existe pas?(pour les utilisateurs sans avatars)

Était-ce utile?

La solution

Il y a quelques façons de le faire.Le plus simple qui vient à l'esprit est un itinéraire comme:

// 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);
}

Ceci définit une action personnalisée pour gérer les demandes de vignettes d'avatar.Si le fichier est trouvé, il redevient l'action par défaut pour les actifs statiques (en l'envoyant au client).Si le fichier n'existe pas, il diffuse votre fichier avatar par défaut sur le client.

Autres conseils

Vous pouvez utiliser le module nœud.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');
});

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top