[Nest] Nest WikiDocs (4.6)

ShinJuYong·2022년 4월 7일
0

Nest

목록 보기
1/13
post-thumbnail

Nest.JS란?

node.js에서의 스프링 비스무리한거..

    1. ORM,유효성검사,DB설정등등.. 기본으로 갖춰준다
    1. IoC, DI, AOP등등 객체지향 개념을 도입해 TypeScript를 무조건써야함

이 Docs에서 구현하는것

유저서비스를 만든다

    1. 회원가입
    1. 이메일인증
    1. 로그인
    1. 회원조회

컨트롤러

컨트롤러는 라우팅(Routing)을 통해 각 컨트롤러가 받는 요청을 분류한다.

컨트롤러 생성

소스코드를 직접써도 되지만 CLI를 쓴다면 쉽게 생성할수 있고 추후에 다른요소를 만들더라도 연관관계를 쉽게 설정할수 있다.

nest g controller [NAME]

다른 Nest 약어는 nest -h로 확인이 가능하다.

만들려고 하는 리소스(앱)에대한 CRUD 템플릿을 한번에 만들수도 있다

nest g resource [NAME]

라우팅

import { Controller, Get } from '@nestjs/common';
import { AppService } from './app.service';

@Controller()
export class AppController {
  constructor(private readonly appService: AppService) {}

  @Get()
  getHello(): string {
    return this.appService.getHello();
  }
}

@Controller 데코레이터를 선언하는걸로 해당 클래스는 컨트롤러의 역할을 한다

@Get("he*lo")같은 식으로 와일드카드를 사용 할 수 있다. (단, -, .는 문자열취급)

Request Object

클라이언트에서 보낸 요청을 Nest(Server)에서 다룰수 있는 객체로 변환하는것

@Req() 데코레이터로 사용한다

Response

위에서 만든 CRUD 템플릿은 서버를 실행하게되면 어떤 라우팅을 통해 Response를 받을 수 있는지 Console로 보여준다

각 CRUD 라우팅

경로http MethodCodeBody
/usersPOST201새 유저를 만든다
/usersGET200모든 유저객체를 반환한다
/users/1GET2001번유저 객체를 반환한다
/users/1PATCH2001번유저를 수정한다.
/users/1DELETE2001번유저를 삭제한다

CLI로 (nest g resource Users)로 만든 Update는 PATCH를 사용하고 있다.
wikiDocs에선 PUT(전체교체)를 사용중이나 실제 구현시에는 PATCH를 활용하자

Exception

만약 요청을 처리하는중 에러가 발생하거나 예외를 추가해야한다면
throw new [ExceptionName]으로 추가한다.

Nest는 Response 헤더를 자동 구성해준다.

만약 커스텀 헤더를 추가하고싶다면 @Heders() 데코레이터를 사용하면된다.

0개의 댓글