Node.js

nodejs에서 자주 쓰는 미들웨어 모듈

pangyoelon 2023. 2. 23. 12:47

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를 실행한다, 미들웨어간의 순서도 중요