multer를 사용해 이미지를 업로드 및 폼데이터를 처리할 수 있다.
기본적인 multer 사용법 정리
1. router 사용법
콜백함수 (req, res) 전에, upload.single('img') 미들웨어를 사용한다.
router.post('/', upload_resize.single('img'), async (req, res) => {
user_id = req.body.user_id;
imgpath = req.file.location;
});
2. 이미지 저장 : 디스크가 아닌 S3에 저장하기
디스크에 있는 파일을 업로드하거나 파일 버퍼(메모리에 저장)하는 두가지 방법이 있다.
디스크 방식은 번거롭기 때문에,
메모리에 파일을 버퍼형식으로 저장하고, 그것을 업로드한다.
const upload = multer({
storage: multer.memoryStorage(),
});
메모리 스토리지를 쓸 경우는
req.file, req.files안의 파일 데이터 객체에 디스크스토리지 전용속성은 destination, filename, path 대신
buffer 라는 속성이 새로 생기고 그 값으로 버퍼들이 저장된다.
이 버퍼를 사용해서 s3에 버퍼로 업로드하면 된다.
'Backend > JavaScript,NodeJS, Express' 카테고리의 다른 글
[JavaScript] TestCode 작성하기 (0) | 2022.10.05 |
---|---|
[Express] Node.js 서버에 Google OAuth 2.0 로그인하기 (0) | 2022.09.15 |
[NodeJS] sharp 패키지 써보기. (0) | 2022.04.26 |
[AWS] 이미지 저장을 할 때 필요한 이미지 해상도 개수만큼 저장하는 이유는 무엇일까? ( S3, Lambda) (0) | 2022.03.28 |
[JavaScript] 기본 개념 정리 (호이스팅, 비동기 구현 방식) (0) | 2022.03.19 |