이번 글에서는 src 디렉토리 아래에 있는 controller에 대해 알아볼 예정이다.
controller란?
일반적으로 웹 어플리케이션에서 controller는 외부의 요청을 처리하는 모듈을 뜻한다.
즉, 클라이언트의 요청을 받아 요청에 따른 동작을 수행하고 응답을 반환하는 역할을 하는 것이다.
Node.js의 express를 사용해 본 사람은 컨트롤러가 라우터 역할을 한다고 생각하면 된다.
컨트롤러 생성
새로운 컨트롤러를 생성해보자.
nest g co
위의 명령을 통해 새로운 컨트롤러를 생성할 수 있다.
명령을 실행한 뒤 controller의 이름을 입력하면 새로운 컨트롤러가 생성된다.
종종 UnhandledPromiseRejectionWarning: Error: Unknown argument skipImport. Did you mean skip-import? 라는 에러가 나올 수 있는데 src 폴더로 이동한 뒤 다시 명령을 실행하면 정상 작동한다.
생성된 user.controller.ts 파일을 살펴보면 @Controller('user')라고 적힌 코드를 볼 수 있는데 이것을 '데코레이터' 라고 한다.
기본적으로 컨트롤러를 정의할 때에는 @Controller() 데코레이터를 사용한다. (spring을 사용해 본 사람은 데코레이터가 어노테이션 역할을 한다고 생각하면 된다)
위의 코드처럼 데코레이터로 경로를 지정해주면 '/user'로 오는 요청은 모두 userController가 처리하게 된다.
이를 통해 express에서 라우터 파일을 나눠 구분해주었던 것 처럼 controller에도 관련 경로들을 그룹화하여 처리할 수 있다.
'웹 > Node' 카테고리의 다른 글
[NestJS] NestJS 프로젝트 시작하기 (0) | 2022.06.22 |
---|
댓글