Nest.js

윤태호·2023년 2월 6일
0

Nest(BackEnd)

목록 보기
1/3

Nest.js 설치는 매우 쉽다. 아래를 따라해 보자.

npm i -g @nestjs/cli
nest new 프로젝트명

node가 설치되어있다며, 저 두줄의 명령어만 실행하면 Nest 프로젝트 준비가 끝난다.
가끔 권한 문제가 생긴다면 sudo를 붙여서 실행해보기를 권한다.

Nest란?

아래의 설명을 보시면 알겠지만, 아직 공부 중에 있지만 JAVA - Spring 과 매우 유사하다. 공부할 수록 유사하다, 아마 Spring을 잘하셨던 분들은 익숙할 것 같다. 그리고 Express에 비해 매우 편한 부분 몇 가지를 제공한다.(Ex: javascript는 객체 or 배열로 주고 받는데, nest에서는 typescript로 결과를 알아서 JSON으로 직렬화해서 받아온다.)

  • Nestjs는 효율적이고, 안정적이며, 확장에 용이한 서버 어플리케이션을 구축하기 위한 진보된 nodejs 프레임워크입니다.
  • NestJS는 Express와 같은 서버 프레임워크로, Express는 굉장히 쉽게 서버를 만들 수 있게 만들어 줬지만 시스템 디자인 측면에서 지원하는 것은 거의 없기 때문에 이러한 문제를 해결하고자 나온 프레임워크가 NestJS이다.
  • NestJS는 Typescript 기반의 OOP(Object Oriented Programming), FP(Functional Programming), FRP(Functional Reactive Programming)를 지원합니다.

Nest.js 기본 구조(controller)

SpringBoot나 Spring을 하셨던 분들이면 우리가 알고 있는 그 Cotroller와 역할이 매우 유사하다. GET,POST,DELETE 등의 요청들을 처리하고 URL을 나누는 라우터 역할을 한다. Controller는 Module안에 포함이며 Module에서 Controller를 정의해줘야 Nest는 비로소 Controller 안에 있는 메소드를 처리한다.
아래는 Controller의 예시이다.TypeScript에는 @Cotroller와 같이 데코레이터를 활용합니다. JAVA의 어노테이션과 비슷하지만 다르다고 합니다.
차이점은 나중에 좀 더 공부하고 정리해보도록 하겠습니다.

@Controller('cats')
export class CatsController{
    @Get('all')
    findall(): string {
        return 'This action returns all cats'
    }
    @Get(':id')
    findOne(@Param('id') id:number):string{
        return 'This action returns one cats'
    }
    @Get('musical')
    findMusical():string{
        return 'This action returns musical CATs'
    }
    @Post('register')
    register(@Body() body: any):string{
        return 'This User information'
    }
    @Post()
    @Header('Cache','none')
    Noheader(): string{
        return 'Let start'
    }
    @Post()
    async create(@Body() createCatDTO: CreateCatDTO){
        return 'this action adds new cat'
    }
}
profile
성장하는것을 제일 즐깁니다.

0개의 댓글