250x250
Notice
Recent Posts
Recent Comments
- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- certbot
- jsonwebtoken
- mongoose
- css
- findByIdAndDelete
- Find
- moment
- atlas
- MYSQL
- TailwindCSS
- RDS
- Node.js
- async
- clipBehavior
- Nodejs
- double quote
- flutter
- til
- AWS
- await
- EC2
- nginx
- mongodb
- single quote
- sequelize
- TypeScript
- wil
- JavaScript
- Express
- https
Link
Archives
기억 휘발 방지소
[Node.js] multer 본문
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
반응형
'Web > Node.js' 카테고리의 다른 글
[Node.js] jsonwebtoken (0) | 2021.10.12 |
---|---|
[Node.js / Sequelize] created_at, updated_at 시간을 한국시간대로 표기하기 (0) | 2021.10.07 |
[Node.js] express-session (0) | 2021.09.23 |
[Node.js] bcrypt로 비밀번호를 보호하자 (0) | 2021.09.22 |
[Node.js] mongoDB Schema 생성 (0) | 2021.09.18 |