multer

Posted by yunki kim on November 26, 2020

express.urlencoded()의 경우 이미지, 동영상을 인코딩 하지 못한다. 따라서 multer로 동영상, 이미지를 인코딩 해야 한다

const multer = require('multer');

const upload = multer({
    //스토리지 설정. diskStorage: 디스크에 저장
    //memoryStorage: 메모리에 저장
    storage: multer.diskStorage({
        //저장할 파일이 없으면 에러를 방지하기 위해 파일을 만들어 준다
        destination(req, file, done){
            done(null, 'uploads/');
        },
        filename(req, file, done){
            //확장자 추출
            const ext = path.extname(file.originalname);
            //파일명 지정, 첫 인자를 null로 하지 않으면 에러처리 미들웨어로 넘어간다.
            done(null, path.basename(file.originalname, ext) + Date.now() + ext);
        },
    }),
    //최대 없로드 크기 지정
    limits: {fileSize: 5 * 1024 * 1024},
});