controller

진솔·2023년 3월 24일
0

Nest의 시작점은 main.ts 이고 그 다음 module로 가게 된다.

Express는 app.js 에 라우터들을 바로 추가해주거나 app.use로 분리해서 붙이는 라우터 위주 설계가 되었는데,
Nest는 모듈 위주 설계가 된다. ex) 사용자 관련 된 서비스는 user 모듈, 게시글은 board 모듈 등등..

만들어둔 모듈들을

imports: [] 안에 추가하면 app.module과 연결이 된다. 그리고 실행 했을 때 Nest가 연결된 모듈들을 파악해서 한 번에 실행 시켜 준다.

실행 했을 때 초록초록한 로그에 연결해준 모듈들도 같이 뜨니까 혹시라도 다 완성해 두고 빠트린 모듈이 없는지 확인해주자.

밑에 controllers는 라우터의 역할을 한다.
컨트롤러도 다 만들면 빼먹지 말고 [] 안에 추가해주자.

위의 컨트롤러는 localhost:3000 으로 get 요청을 보냈을 때 실행된다.
주소를 바꿀 수 있는 방법 2가지가 있다.

첫번 째 사진처럼 @Controller를 바꿔주게 되면 Get, Post 함수들의 공통적인 라우터가 되고,
개별적으로 바꿔주고 싶으면 두번 째 사진처럼 해주자.

함수만 선언했는데 라우터가 연결되는 이유
=> 제어의 역전으로 Nest가 알아서 찾아서 연결 해줌

@Get 이나 @Post, @Controller 들은 데코레이터 라고 부른다.

데코레이터는 밑에 함수에 기능을 추가해주는 역할을 하며, 직접 데코레이터를 만들어 줄 수도 있다.
매개변수에도 데코레이터를 적어 줄 수 있다.

출처 - 제로초 Slack 클론 코딩[백엔드 with NestJS + TypeORM]

0개의 댓글

관련 채용 정보