ABOUT ME

Today
Yesterday
Total
  • Nest
    Node.js/Nest 2023. 8. 19. 16:18

    Nest의 기본 개념에 대해 정리하였습니다.



    < Introduction  >

    Nest.js는 Express위에서 동작하는 node.js 프레임워크 입니다.

    TypeScript를 사용합니다.(그러나 개발자가 바닐라 자바스크립트로 개발 가능)

    기존 Node.js + Express의 장점이자 단점인 자율성(API url이나 파일구조 등)을 보완한 프레임워크로, 구조 및 규칙이 정해져있습니다. 하지만 그 구조 및 규칙을 따르기만 한다면, 큰 규모의 백엔드를 쉽게 만들 수 있습니다.

    OOP(Object Oriented Programming), FP(Functional Programming), FRP(Functional Reactive Programming)을 특징으로 가지고 있습니다.

     

     


    < Project Setup  >

    1. Nest CLI 설치

    $ npm i -g @nestjs/cli

    2. 프로젝트 시작

    $ nest new project-name

     

    https://docs.nestjs.com/first-steps

     

    Documentation | NestJS - A progressive Node.js framework

    Nest is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with TypeScript and combines elements of OOP (Object Oriented Progamming), FP (Functional Programming), and FRP (Functional Reac

    docs.nestjs.com

     

     


    < Architecture  >

    코어 파일들은 /src에 들어있습니다.

    main.ts 파일을 통해 서버가 시작됩니다.(entry file)

     

    • main.ts The entry file of the application which uses the core function NestFactory to create a Nest application instance.
    • app.module.ts : The root module of the application.
    • app.controller.ts : A basic controller with a single route.
    • app.service.ts : A basic service with a single method.
    • app.controller.spec.ts : The unit tests for the controller(optional).

     

    +. 모듈은 어플리케이션의 일부분, 작은 어플리케이션입니다.
    ex) 인증을 담당하는 어플리케이션 => users 모듈

     


    Controller : 

    • Controllers are responsible for handling incoming requests and returning responses to the client.

    Providers : 

    • Providers are a fundamental concept in Nest.
    • Many of the basic Nest classes may be treated as a provider – services, repositories, factories, helpers, and so on.
    • The main idea of a provider is that it can be injected as a dependency; this means objects can create various relationships with each other, and the function of "wiring up" instances of objects can largely be delegated to the Nest runtime system.

     

    Services : 

    • Services are responsible for business logic(the part the has actual functions).

     

    +. Nest.js는 디폴트로 json 형식을 반환합니다.

    +. Nest.js는 디폴트로 Express위에서 돌아가지만, fastify 프레임워크 위에서 돌아가도록 할 수 있습니다.(Express보다 2배 빠름)
        -> Req, Res같은 decorator를 이용해 Express에 접근 가능하지만, fastify 프레임워크로 바꾸려 할 때에는 좋지 않은 방식임

     

     

     

    'Node.js > Nest' 카테고리의 다른 글

    Exception Filters  (0) 2023.10.30
    Middlewares  (0) 2023.10.18
    Modules  (0) 2023.09.26
    Providers  (0) 2023.09.08
    Controllers  (0) 2023.08.23

    댓글

Designed by Tistory.