Nest.js 기본
2022. 8. 26. 18:11ㆍNest.js
Nest.js를 Express 만큼 다루고 싶다.
빠른 시일내에 될 예정
@ (데코레이터)
클래스 위의 함수, 클래스를 위해 움직인다(?)
데코레이터는 클래스를 필수 메타데이터와 연결하고 Nest가 라우팅 맵을 만들 수 있도록 합니다.
클래스 데코레이터 | 클래스의 정의를 읽거나 수정 | (constructor) | d.ts 파일, declare 클래스 |
메서드 데코레이터 | 메서드의 정의를 읽거나 수정 | (target, propertyKey, propertyDescriptor) | d.ts 파일, declare 클래스, 오버로드 메서드 |
접근자 데코레이터 | 접근자의 정의를 읽거나 수정 | (target, propertyKey, propertyDescriptor) | d.ts 파일, declare 클래스 |
속성 데코레이터 | 속성의 정의를 읽음 | (target, propertyKey) | d.ts 파일, declare 클래스 |
매개변수 데코레이터 | 매개변수의 정의를 읽음 | (target, propertyKey, parameterIndex) | d.ts 파일, declare 클래스 |
Module
Nest가 구조를 구성하는 데 사용하는 메타데이터를 제공하는 역할
@Module() 데코레이터가 imports, controllers, providers, exports 네 가지 속성의 객체를 받는다.
imports | 해당 모듈에서 사용하는 provider를 가지고 있는 모듈을 정의합니다. (사용하기 위한 provider가 있을 경우, 해당 provider를 가지고 있는 모듈에서 export 해줘야 합니다.) |
exports | 해당 모듈에서 제공하는 provider를 다른 모듈에서 사용할 수 있게 합니다. |
controllers | 해당 모듈에 정의해야하며, 인스턴스화 되어야하는 controller |
providers | 해당 모듈에 정의해야하며, 인스턴스화 되어야 하는 provider |
Controller
사용자(client)의 요청(request)을 처리하고, 응답(response)을 반환하는 역할
Nest의 Controller 는 Express의 컨트롤러와 다르다. 오히려 Express의 라우터 역할을 한다.
Url을 get하고 function을 리턴한다.
Service
어플리케이션이 제공하는 서비스 기능을 구현하고 수행하는 역할을 맡는 것
Nest의 Service는 비즈니스 로직을 실행하는 곳이다. Express의 컨트롤러 역할이다.
spec
spec이라고 붙은 파일은 테스트용 파일. Nest js에서는 jest라는 테스트 프레임 워크를 사용한다.
'Nest.js' 카테고리의 다른 글
Providers/ DI (0) | 2022.09.04 |
---|---|
Controller (0) | 2022.09.04 |
DTO & 유효성 검사 (ValidationPipe) (0) | 2022.08.27 |
TypeORM (0) | 2022.08.23 |
Nest.js 설치 및 시작 (0) | 2022.08.17 |