Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- Python
- Express
- 공룡게임
- Nest.js
- Queue
- AWS
- JavaScript
- cookie
- Sequelize
- MongoDB
- 정렬
- MySQL
- jest
- Dinosaur
- TypeScript
- game
- nestjs
- mongoose
- Bull
- nodejs
- class
- 자료구조
- 게임
- typeORM
- OCR
- GIT
- flask
- react
- dfs
Archives
- Today
- Total
포시코딩
[fs] 하위 폴더 생성 with. multer 본문
728x90
문제 발생
const multer = require('multer');
const moment = require('moment');
const fs = require('fs');
const storage = multer.diskStorage({
destination: './src/public/uploads/orders',
filename: (req, file, cb) => {
file.originalname = Buffer.from(file.originalname, 'latin1').toString('utf8');
cb(null, moment().format('YYYYMMDDHHmmss') + '_' + file.originalname);
},
});
multer 사용중 destination에 명시한 폴더가 존재하지 않을 경우
에러가 발생하는게 확인되었다.
해결 방법
const multer = require('multer');
const moment = require('moment');
const fs = require('fs');
const storage = multer.diskStorage({
destination: (req, file, cb) => {
const path = './src/public/uploads/orders';
fs.mkdirSync(path, { recursive: true });
cb(null, path);
},
filename: (req, file, cb) => {
file.originalname = Buffer.from(file.originalname, 'latin1').toString('utf8');
cb(null, moment().format('YYYYMMDDHHmmss') + '_' + file.originalname);
},
});
fs를 불러오고 (npm에서 다운받을 필요 없음)
destination을 위와 같이 함수로 처리하는 과정에서 저장할 위치 path에 대해
fs.mkdirSync()를 실행시킨다.
따로 폴더의 존재 여부를 가릴 필요 없이
존재하지 않으면 폴더를 생성하고
이미 존재하면 그냥 그대로 해당 위치에 이미지 저장이 잘 되는 것을 확인할 수 있다.
728x90
'Node.js' 카테고리의 다른 글
HTTP Status Code 상태 코드 (0) | 2023.01.13 |
---|---|
[multer] 업로드 기능 class로 모듈화 시키기 (0) | 2023.01.04 |
[multer] 한글 깨짐 현상 해결 방법 (0) | 2023.01.04 |
[ejs] Expression expected <%- %> 빨간줄 에러 (0) | 2023.01.04 |
DDD(Domain Driven Design) (0) | 2022.12.28 |