Closed DaHoon06 closed 8 months ago
@Module()
NestJS 애플리케이션 구조를 만들 때 사용할 수 있는 메타데이터를 제공해주는 역할
NestJS에서 모듈인 기본적으로 싱글톤 패턴
모듈과 프로바이더 간의 관계 및 종속성을 연결하기 위해 사용하는 내부 데이터 구조
@Module({ providers: [], controllers: [], imports: [], exports: [], }) export class ModuleClass {}
@Controller()
외부 요청을 처리하는 모듈, 클라이언트에서 요청 받은 일을 처리하고 응답하는 역할
컨트롤러의 목적은 요청에대한 수신하는 것
class BodyDto { boardId: number; title: string; content: string; } import { Controller, Post, Get, Delete, Put, Patch, Body, Query, Param } from '@nestjs/common'; @Controller() export class StudyController { @Post('/') async createBoard(@Body('createBody') createBody: BodyDto) {} @Get('/:boardId') async getBoardByBoardId( @Param('boardId') boardId: number, @Query('page') page: number) {} @Delete('/:boardId') async deleteBoard(@Param('boardId') boardId: number) {} @Put('/') async putRequest() {} @Patch('/') async pathRequest() {} }
컨트롤러에서는 HTTP Method 별 데코레이터를 사용할 수 있습니다.
@Injectable()
NestJS에서 해당 데코레이터가 붙은 클래스를 Provider로 간주합니다.
이 안에서 Service, Respository, Factory 등으로 구분하게 되는데 Service Class의 역할은 DB 접근을 하기전 비즈니스 로직을 관리하고, DB 접근에 관련한 역할을 Respository Class에 위임합니다.
TypeORM은 ORM (Object Relational Mapping)을 도와주는 라이브러리
Entity는 데이터베이스의 테이블과 대응되는 클래스
데이터 전송 객체, 프로세스 간 데이터를 전달하는 객체를 의미
interceptor
요청과 응답을 중간에 가로채어 데이터를 변경할 수 있습니다.
interceptor 는 RxJS 의 Observable 객체를 반환하는데 이는 요청의 실행 순서와 반대로 동작 즉, 요청은 전역 → 컨트롤러 → 라우터 의 순이고 응답은 라우터 → 컨트롤러 → 전역 의 순으로 동작
middleware
Middleware 는 라우트 핸들러가 클라이언트 요청을 처리하기 전에 동작
아주 훌룡히 정리 잘 해주셨네요! n:m 의 경우에는 저장할 수 있는 Column의 제한 때문에 1:N 까지 승격시키긴해요! (링크)[https://ict-nroo.tistory.com/127] 궁금하시다면 보시면 될 것 같아요!
NestJS 애플리케이션 구조를 만들 때 사용할 수 있는 메타데이터를 제공해주는 역할
NestJS에서 모듈인 기본적으로 싱글톤 패턴
모듈과 프로바이더 간의 관계 및 종속성을 연결하기 위해 사용하는 내부 데이터 구조
외부 요청을 처리하는 모듈, 클라이언트에서 요청 받은 일을 처리하고 응답하는 역할
컨트롤러의 목적은 요청에대한 수신하는 것
컨트롤러에서는 HTTP Method 별 데코레이터를 사용할 수 있습니다.
NestJS에서 해당 데코레이터가 붙은 클래스를 Provider로 간주합니다.
이 안에서 Service, Respository, Factory 등으로 구분하게 되는데 Service Class의 역할은 DB 접근을 하기전 비즈니스 로직을 관리하고, DB 접근에 관련한 역할을 Respository Class에 위임합니다.
TypeORM & Entity
TypeORM은 ORM (Object Relational Mapping)을 도와주는 라이브러리
특징
Entity는 데이터베이스의 테이블과 대응되는 클래스
DTO (Data Transfer Object)
데이터 전송 객체, 프로세스 간 데이터를 전달하는 객체를 의미
요청과 응답을 중간에 가로채어 데이터를 변경할 수 있습니다.
interceptor 는 RxJS 의 Observable 객체를 반환하는데 이는 요청의 실행 순서와 반대로 동작 즉, 요청은 전역 → 컨트롤러 → 라우터 의 순이고 응답은 라우터 → 컨트롤러 → 전역 의 순으로 동작
Middleware 는 라우트 핸들러가 클라이언트 요청을 처리하기 전에 동작
미들웨어의 역할