제로부터 쌓는 개발일지
article thumbnail
Published 2023. 11. 10. 10:59
[Node.JS] 미들웨어 backend/Node.js
반응형

미들웨어 (Middleware)

  • 웹 서버에서 특정 요청이 처리되는 과정 중에 일어나는 공통적인 작업을 처리하는 소프트웨어 컴포넌트
    웹 서버가 요청을 받을 때 모든 요청에 대해 일관된 처리가 필요한 경우, 미들웨어를 통해 효율적인 관리 가능
    Ex. 로그 기록, 사용자 인증, 데이터 포맷 변환 등

 

Express.js 내장 미들웨어

  • express.urlencoded: form-urlencoded 형식의 바디 데이터를 처리
  • express.json: JSON 형식의 바디 데이터를 처리
app.use(express.urlencoded({ extended: false }));
app.use(express.json());

 

미들웨어 작성 방법

  • 기본 형태: app.use((req, res, next) => { /* 코드 */ })
  • req(요소): 요청 객체, HTTP 헤더, 쿼리 파라미터, URL 등의 정보를 담고 있음
  • res(요소): 응답 객체, HTTP 상태 코드, 데이터 형식, 헤더 설정 등의 기능을 제공
  • next(요소): 다음 미들웨어를 호출
// 로그 기록 미들웨어 예시
app.use((req, res, next) => {
    console.log('Request URL:', req.originalUrl, ' - ', new Date());
    next();
});

 

미들웨어의 작동 방식

  • 여러 미들웨어가 있을 경우, 첫 번째 미들웨어부터 순차적으로 처리
  • next() 함수 호출을 통해 다음 미들웨어로 진행

 

Router와 미들웨어의 차이

  • 미들웨어는 요청과 응답 사이의 일련의 처리 과정을 담당하며 보안, 로깅, 요청 데이터 등과 같은 기능을 수행
  • 라우터는 들어오는 요청을 애플리케이션의 다양한 부분으로 라우팅 하는 역할을 담당하여, 각 요청이 적절한 컨트롤러나 핸들러에 도달하도록 함

 

Express.js 미들웨어 실행 조건

  • 전역 미들웨어: app.use(Middleware)로 설정하면 모든 요청에 대해 미들웨어가 실행
  • 경로별 미들웨어: app.use('/api', Middleware)로 설정하면 특정 경로의 요청에만 미들웨어가 실행
  • 메소드별 미들웨어: app.post('/api', Middleware)로 설정하면 특정 경로의 POST 요청에만 미들웨어가 실행

 

레퍼런스

crypto 모듈

Joi Reference Document

반응형

'backend > Node.js' 카테고리의 다른 글

[Node.JS] Sequelize  (0) 2023.11.10
[Node.JS] 관계형 데이터베이스 & SQL  (0) 2023.11.10
[Node.JS] 인증(Authentication)  (0) 2023.11.09
[Node.JS] REST API & Validation  (1) 2023.11.08
[Node.JS] AWS EC2 배포 정리  (0) 2023.11.02
profile

제로부터 쌓는 개발일지

@PachyuChepe

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

profile on loading

Loading...