Nest.js 기본

2022. 8. 26. 18:11Nest.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