NEST.JS

CodeLog·2021년 9월 9일
0
post-thumbnail

NEST.JS란?

node.js의 확장된 프레임워크 서비스이다.
발전하는 프론트엔드 기술과 다르게 node.js에서 라이브러리 및 툴 들이 존재하지만 주요한 문제를 효과적으로 해결하지 못했다.
따라서 nest.js는 확장성이 뛰어나고 느슨한 결합을으로 유지관리가 용이한 어플리 케이션을 만들었다.
(공식 사이트 설명)

install

$ npm i -g @nestjs/cli
$ nest new server

설치 후 "$npm start"입력 하나로 금방 server가 오픈 됩니다

Controllers

클라이언트로 부터 받은 요청을 핸들링하고 응답을 반환하는 역활을 수행한다.

라우팅 메커니즘은 어떤 controller 가 어떤 요청을 수신받을지에 대한 제어를 한다. controller는 각각 한개 이상의 route를 가지고 각각 다른 routes는 서로 다른 action을 수행한다.
📌데코레이터는 클래스를 필수 메타데이터 연결하고 nest가 라우팅 맵을 만들 수 있도록 한다.

Routing

기본 controller를 정의하기 위해 필수적으로 @Controller() 데코레이터는 필수다.
@Controller() 데코레이터에 경로 접두사를 사용하면 일련의 관련 경로를 쉽게 그룹화하고 반복 코드를 최소화할 수 있습니다.

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('cat')데코레이션은 endpoint cat을 지칭한다.
따라서 http://localhost:3000/cat 의 rul을 입력 할 경우 아래 경로로 routing 하게 된다.
@Get() 데코레이터에 @Get('hello') 와 같이 선언 시 http://localhost:3000/cat/hello의 엔드 포인트로 get 명령을 수행하게 된다.

cats.controller.tsJS

import { Controller, Get } from '@nestjs/common';

@Controller('cats')
export class CatsController {
  @Get('hello')
  findAll(): string {
    return 'This action returns all cats';
  }
}

node.js workflow



Nestjs CLI Tool - Sequence


참고 : https://ichi.pro/ko/node-js-peuleim-wokeu-silijeu-1-2-1-nestjs-keonteulolleo-130445149864961

profile
개발로그

0개의 댓글