node.js + sails.js.사용자 정의 이미지 특정 디렉토리의 이미지를 찾을 수없는 경우

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

  •  21-12-2019
  •  | 
  •  

문제

사용자가 액세스하는 / images/avatars/thumbnails/id.png가 있고 존재하지 않는 경우 일부 이미지를 반환하는 방법이 있습니까?(아바타가없는 사용자에게)

도움이 되었습니까?

해결책

이 작업을 수행하는 몇 가지 방법이 있습니다.마음에 오는 가장 간단한 것은 다음과 같은 길입니다.

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

이것은 Avatar Thumbnail에 대한 요청을 처리하는 사용자 정의 작업을 설정합니다.파일이 발견되면 정적 자산 (클라이언트로 보내기)의 기본 동작으로 다시 떨어집니다.파일이 없으면 기본 아바타 파일을 클라이언트로 스트리밍합니다.

다른 팁

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');
});
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top