-
[Node.js] multer로 이미지 업로드 하고 sharp로 리사이징 해주기Node.js 2020. 11. 27. 16:10
multer로 업로드된 이미지를 리사이징 해주는 방법에 대해 알아보겠습니다
multer에 대한 설명은 이전 게시물에도 해두었으니 설명은 생략하겠습니다
먼저 이미지 리사이징을 위한 sharp모듈과 원본파일을 삭제해주기 위한 fs모듈을 설치해줍니다
npm install --save sharp npm install --save fs
const sharp = require('sharp') const fs = require('fs') const multer = require('multer') const storage = multer.diskStorage({ destination: (req, file, cb) => { cb(null, 'uploads/') }, filename: (req, file, cb) => { let newFileName = new Date().valueOf() + path.extname(file.originalname) cb(null, newFileName) }, }) router.post('/upload', upload.single('img'), (req, res, next)=>{ try{ sharp(req.file.path) // 리사이징할 파일의 경로 .resize({width:640}) // 원본 비율 유지하면서 width 크기만 설정 .withMetadata() .toFile('[리사이징된 파일이 저장될 경로/파일이름]', (err, info)=>{ if(err) throw err console.log(`info : ${info}`) fs.unlink('[삭제할 파일의 경로]', (err)=>{ // 원본파일은 삭제해줍니다 // 원본파일을 삭제하지 않을거면 생략해줍니다 if(err) throw err }) }) }catch(err){ console.log(err) } })
리사이징 후 결과 객체
info : { format: 'jpeg', width: 640, height: 1138, channels: 3, premultiplied: false, size: 88546 }
'Node.js' 카테고리의 다른 글
[Node.js] sequelize 관계 정의 (associations) (0) 2022.04.06 [Node.js] Sequelize 설치 (0) 2022.04.05 [Node.js] multer 모듈 이용해서 파일 업로드 하기 (0) 2020.11.26 [Node.js] socket.io 원리 (0) 2020.10.20 [Node.js] [ Firebase] FCM서버를 이용한 푸시 알림 보내기 (0) 2020.10.15