morgan
- 서버로 들어온 요청과 응답을 기록해주는 미들웨어
- 로그의 자세한 정도 선택 가능(dev, tiny, common, combined)
- 주로 개발환경에서는 dev, 배포환경에서는 combined를 사용
static
- 정적인 파일들을 제공하는 미들웨어
- 인수로 정적파일의 경로를 대입
- fs.readFile로 직접 읽을 필요 없음
- 요청하는 파일이 없으면 next를 호출해 다음 미들웨어로 넘어감
- 파일을 발견했다면 응답하고 다음 미들웨어는 실행되지 않음
- 요청 주소와 실제 주소를 다르게 만들어 보안 향상
body-parser ( express.json, express.urlencoded )
- body-parser의 주요 기능이 현재는 express의 json, urlencoded로 대체됨
- 요청의 body를 해석해주는 미들웨어
- body가 json인 경우 express.json, body가 폼 요청인 경우 express.urlencoded 사용
- 버퍼데이터나 텍스트데이터일 경우는 body-parser를 설치해야함, 하지만 사용할 일이 잘 없음
- Multipart데이터(이미지,동영상 등)인 경우는 multer라는 미들웨어를 사용함
cookie-parser
- 요청 헤더의 쿠키를 해석해주는 미들웨어
- req.cookies 안에 쿠키들이 파싱되어 들어있음
- 실제 쿠키 옵션들을 넣을 수 있음 (expires, domain, httpOnly, maxAge, path ...)
- clearCookie로 쿠키를 지울 수 있다 (expires와 maxAge를 제외한 쿠키 옵션이 일치해야 함
express-session
- 세션 관리용 미들웨어
- 세션 쿠키에 대한 설정(secret: 쿠키 암호화 키, cookie: 세션 쿠키 옵션)
- 세션 쿠키는 암호화되어 프론트에 전송됨
dotenv
- .env 라는 파일에 서버에서 중요한 암호화 키, 비밀번호 등을 모아둠
- 소스코드 탈취 당할 시 보안위협을 줄일 수 있음
- .env파일에 키를 모아둠으로써 사용, 관리가 용이
+) 거의 모든 미들웨어들은 내부적으로 next를 실행한다, 미들웨어간의 순서도 중요
'Node.js' 카테고리의 다른 글
cors 'Access-Control-Allow-Credentials' 헤더 설정 시 주의할 점 (0) | 2023.03.25 |
---|---|
axios 요청 url에 prefix값을 주는 법 (0) | 2023.03.23 |
cors를 설정해야 하는 이유 (sop의 존재이유) (0) | 2023.03.22 |
미들웨어 확장법 (0) | 2023.02.23 |
Nodejs에 대한 오해 (0) | 2023.02.17 |