미들웨어

웹 서버에서 요청을 받을때, 모든 요청에 대한 공통적인 처리를 하고 싶을 때 필요한 것

ex) 모든 요청에 대한 로그 남기는 로깅 미들웨어, 로그인 상태인지 인증 미들웨어, 에러 핸들링 미들웨어, 특정 사용자만 API 접근 가능하게

사용자가 웹 페이지에서 From을 통해 전송한 데이터를 서버에서 쉽게 파싱해서 사용할 수 있게


Express.js 미들웨어

app.use(express.urlencoded({ extended: false }));
app.use(express.json());
  • app.use를 통해 전역으로 미들웨어를 등록했다 라고 말 할 수 있음

  • unlencoded: form-urlencoded라는 body 데이터를 손쉽게 코드에서 사용할 수 있게

  • json: JSON이라는 body 데이터를 손쉽게 코드에서 사용할 수 있게


Express.js 미들웨어 예시

app.use((req, res, next) => {
    // 코드
});
  • req: 요청 정보

  • res: 응답 정보

  • next: 다음 스택으로 정의된 미들웨어 호출


Router와 미들웨어의 차이

  • Router는 미들웨어 기반으로 구현된 객체이므로 미들웨어와 동일한 방식으로 작동

  • Router는 미들웨어 함수를 특정 경로로 바인딩하는 역할, 요청이 들어온 URL경로에 따라 서로 다른 미들웨어를 실행시킬 수 있게 도와줌


Express.js의 미들웨어가 실행되는 경우

  • app.use(Middleware): 모든 요청에서 미들웨어가 실행된다

  • app.use('/api', Middleware): /api로 시작하는 모든 요청에서 미들웨어를 실행한다.

  • app.post('/api', Middleware, (req, res,) => {} ): /api로 시작되는 POST 요청에서 미들웨어를 실행한다.



데이터 유효성 검증 라이브러리 Joi

  • Joi는 JavaScript 유효성 검증을 위한 라이브러리.

  • Joi는 여러 타입과 규칙을 이용해 유효성을 검증하며, 유효성 검증에 실패하면 오류 발생시킴


유효성 검증(Validation)이란 무엇인가?

  • Validation은 말 그대로 어떤것을 검증

  • Nest.js에서는 Pipe라는 이름으로 불리기도 함

태그:

카테고리:

업데이트: