본문 바로가기
Backend/NestJs

[NestJS] 프로젝트 시작

by SOLYI 2022. 2. 20.

// 설치

npm i -g @nestjs/cli

npm install --save @nestjs/mongoose mongoose

npm i --save @nestjs/config

npm i --save class-validator class-transformer

//

nest new project-name

 

// 첫단계

nest g mo cats  // cats라는 모듈 생성 

controllers : [CatsController]를 추가하고 아래코드 실행

nest g co cats // cats 컨트롤러 생성

nest g service cats // cats 서비스 생성

nest g middleware // middleware 생성

@Module({ controllers : [CatsController], providers: [CatsService]})

 

// 컨트롤러 

@Controller('name')

 

// 예외필터

filter 적용

htt-exception.filter.ts

@UseFilters(HttpExceptionFilter)

main.ts 에 app.useGlobalFilters(new HttpExceptionFilter());

 

// 파이프

id값에 숫자 인자 값을 넣어도 string 으로 받아와지지만 partIntPipe를 추가해주면 number 타입이 된다.

  @Get(':id')
  getOneCat(@Param('id', ParseIntPipe) param: number) {
    console.log(param);
    console.log(typeof param);
    return 'a cat';
  }

 

//인터셉터

AOP(관점지향프로그래밍)에서 영향

미들웨어처럼 사용 logging 같이

@UseInterceptors(new LogginInterceptor()) // success.interceptor.ts

@UseInterceptors(SuccessInterceptor) //cats.controller.ts

 

// 생명주기

리퀘스트 - 미들웨어 - 가드 - 인터셉터(pre-controller) - 파이프 - 컨트롤러 - 서비스 - 인터셉터(post-request)

 

// DB (mongoose)

 

 

// jwt

// 로그인

// 회원가입

// CORS

// 폴더구조

// 디자인패턴

// 미디어파일

// 데이터베이스 관리

// 스웨거

 

반응형