기억 휘발 방지소

[Node.js] multer 본문

Web/Node.js

[Node.js] multer

choice91 2021. 9. 27. 16:14
728x90
반응형

multer는 파일을 업로드 할 수 있게 도와주는 미들웨어이다.

 

📌 설치

npm i multer

 

📌 multer 적용

import multer from "multer";

const uploadFiles = multer({
  dest: "uploads/",
  limits: { fileSize: 5 * 1024 * 1024 },
});

업로드한 파일이 uploads/ 폴더 안에 저장된다.

limits는 업로드할 파일의 크기를 제한한다. 단위는 Byte

제한보다 큰 파일을 업로드할 경우 아래처럼 에러를 발생시킨다.

userRouter
  .route("/edit")
  .post(uploadFiles.single("avatar"), postEdit);

파일을 하나만 업로드 할 때는 single을 쓰면 된다.

 

📌 템플릿

 

npm에 보면 'NOTE: Multer will not process any form which is not multipart (multipart/form-data).'라고 써있다.

즉, Multer는 multipart가 아닌 form을 처리하지 않는다는 말인듯하다.

그래서 form에 enctype="multipart/form-data"를 써줘야한다.

form(method="POST", enctype="multipart/form-data")
    label(for="avatar") Avater
    input(type="file", id="avatar", name="avatar", accept="image/*")

 

 

마지막으로 콘솔에 출력한 결과

{
  fieldname: 'avatar',
  originalname: 'bgimage.jpg',
  encoding: '7bit',
  mimetype: 'image/jpeg',
  destination: 'uploads/',
  filename: '8e43c146a7d8d83d2c18182375cbefbb',
  path: 'uploads\\8e43c146a7d8d83d2c18182375cbefbb',
  size: 38166
}

 

npm 참고

728x90
반응형