Nest.js가 너무 어려워서 개인과제도 또 제대로 하지 못했음... 그래서 Nest 사용을 기초부터 알려주는 영상이 있어서 천천히 따라해봄
1-1. npm i -g @nestjs/cli 네스트 클라이언트를 글로벌 환경으로 다운 받는다
1-2. nest -v 명령어로 네스트 버전 확인을 통해서 네스트가 잘 다운 받아졌나 확인 가능
1-3. nest new projectName으로 프로젝트를 시작한다.
2-1. - npm run start:dev로 nest를 실행시켜본다.
2-2. 모듈 생성 명령어 -> nest g mo(module) boards
=> nest cli를 사용해서 boards라는 이름의 모듈을 generate(생성한다)
3-1. Nest에서의 Controllers란? : 들어오는 요청을 처리하고 클라이언트에 요청을 반환한다
-Controller는 @Controller 데코레이터로 클래스를 테코레이션하여 정의된다.
-Handler: @Get, @Post, @Delete 등과 같은 데코레이터로 장식된 컨트롤러 클래스 내부의 단순한 메서드임
- 브라우저에서 요청을 하면 컨트롤러에서 알맞은 요청 경로에 따라서 해야할 요청을 처리한 후 다시 클라이언트에게 반환해줌
3-2. Controller 생성하기
- nest g co boards --no-spec 명령어로 borards라는 컨트롤러를 만드는데 테스트 코드를 작성하는 소스는 제외시킨다.
- cli 명령어 입력시 Controller가 만들어지는 과정
1. cli는 boards라는 이름의 폴더를 찾는다.
2. boards 폴더 안에 controller 파일을 생성함
3. boards 폴더 안에 module 파일을 찾는다.
4. module 파일 안에 controller를 자동적으로 넣어준다.
3-3. Sercive 생성하기
- nest g s boards --no-spec controller와 같은 내용
(Sercive가 생성이 되면 자동적으로 boards.module.ts에 providers: [BoardsService] 라는 코드가 작성이 되어있음)
- 생성된 파일에는 Injection 데코레이터가 있고 Nest는 이것을 이용해서 다른 컴포넌트에서 이 서비스를 사용할 수 있게(Injectable) 만들어준다.
- controller에서 service를 사용하려면 의존성 주입(DI)을 해줘야함
(nest에서 DI는 클래스의 Constructor에서 이뤄짐)