전역 미들웨어(Global Middleware)가 요청을 처리하기 전에 실행 된다
이후 컨트롤러 수준(Controller-level) 실행
이후 핸들러 수준(Handler-level) 미들웨어가 실행된다
요청이 컨트롤러에 도달하기 전에, 해당 컨트롤러에 적용된 가드들이 실행
가드는 요청이 특정 조건을 충족하는지를 확인하고, 요청을 계속 진행할지를 결정한다
클라이언트로부터의 요청에서 추출된 데이터가 필요한 형식으로 변환된다
주로 DTO(Data Transfer Object)의 형태로 변환되어 해당 핸들러에 전달된다
요청이 적절한 컨트롤러의 핸들러에 도달하면, 해당 핸들러가 실행
이 때, 파라미터 변환이 완료된 데이터가 핸들러의 매개변수로 전달된다
핸들러 실행 🐣전후🐣에 적용된 파이프가 실행된다
파이프는 일반적으로 두 가지의 경우에서 사용한다
핸들러 실행 🐣전후🐣에 적용된 인터셉터가 실행된다
이는 핸들러의 실행 전후에 추가적인 작업을 수행할 수 있도록 해준다
핸들러가 실행되고 반환된 데이터를 기반으로 클라이언트에게 응답이 생성되고 반환
만약 응답 생성 과정에서 오류가 발생하면
해당 오류는 익셉션 필터(Exception Filters)에 의해 처리된다
이를 통해 오류가 적절하게 처리되고 클라이언트에게 적절한 오류 응답이 반환된다
HTTP 요청 객체를 가져온다 주로 Express의 Request 객체를
네스트 컨트롤러나 프로바이더 클래스의 메서드에서 사용할 때 사용
HTTP 응답 객체를 가져온다 주로 Express의 Response 객체를
네스트 컨트롤러나 프로바이더 클래스의 메서드에서 사용할 때 사용
Express의 next() 함수를 가져온다
주로 미들웨어나 Express의 라우터 핸들러에서 사용
세션 객체를 가져온다
주어진 이름의 매개변수를 가져오거나 전체 매개변수 객체를 가져올 수 있다
HTTP 요청의 본문(body) 데이터를 가져온다
쿼리스트링(query string) 데이터를 가져온다
HTTP 요청 헤더를 가져온다
클라이언트의 IP 주소를 가져온다
호스트 매개변수를 가져온다
두 개 이상의 클래스나 인터페이스를 교차하여 새로운 DTO를 만든다
이는 두 클래스나 인터페이스의 속성을 모두 포함하는 새로운 DTO를 생성할 때 사용된다
DTO에서 일부 속성을 선택적으로 만든다
이는 모든 속성이 필수적이지 않은 DTO를 정의할 때 사용된다
다른 클래스의 일부 속성만을 선택하여 새로운 DTO를 만든다
이는 기존 클래스의 일부 속성만을 포함하는 DTO를 생성할 때 사용된다
다른 클래스의 일부 속성을 제외하여 새로운 DTO를 만든다
이는 기존 클래스에서 특정 속성을 제외하고자 할 때 사용된다