NestJS

    [nestjs] spec과 unit testing

    [nestjs] spec과 unit testing

    nestjs구조를 보면 거의 모든 controller.ts와 service ts파일에 spec.ts파일이 같이 붙어 있는 것을 볼 수 있습니다. spec.ts파일은 테스트를 위한 파일입니다. import { Test, TestingModule } from '@nestjs/testing'; import { SchoolController } from './school.controller'; describe('SchoolController', () => { let controller: SchoolController; beforeEach(async () => { const module: TestingModule = await Test.createTestingModule({ controllers: [SchoolC..

    [nestjs] module과 의존성주입(dependency injection)

    [nestjs] module과 의존성주입(dependency injection)

    이 글은 아래 글에서 이어집니다. [Server/NestJS] - [nestjs] DTO (Data Transfer Object) [nestjs] DTO (Data Transfer Object) 아래 글은 아래 글에서 이어집니다. [Server/NestJS] - [nestjs] validation [nestjs] validation 아래 내용은 이전 포스팅에서 이어지는 내용입니다. [Server/NestJS] - [nestjs] Service [nestjs] Service nestj.. lab.cliel.com app.module.ts를 보면 다음과 같이 import { Module } from '@nestjs/common'; import { AppController } from './app.contro..

    [nestjs] DTO (Data Transfer Object)

    [nestjs] DTO (Data Transfer Object)

    아래 글은 아래 글에서 이어집니다. [Server/NestJS] - [nestjs] validation [nestjs] validation 아래 내용은 이전 포스팅에서 이어지는 내용입니다. [Server/NestJS] - [nestjs] Service [nestjs] Service nestjs에서 Service를 생성하려면 다음 명령을 사용합니다. nest g s Service 이름을 입력하고 다음으로.. lab.cliel.com nestjs에서는 다른 클래스의 타입을 사용해 또 다른 타입을 간단하게 생성할 수 있습니다. 예를 들어 특정 student의 정보를 변경하는 부분을 추가하기 위해 model디렉터리의 student.ts에서 업데이트를 위한 별도의 클래스를 아래와 같이 생성하였습니다. export..

    [nestjs] validation

    [nestjs] validation

    아래 내용은 이전 포스팅에서 이어지는 내용입니다. [Server/NestJS] - [nestjs] Service [nestjs] Service nestjs에서 Service를 생성하려면 다음 명령을 사용합니다. nest g s Service 이름을 입력하고 다음으로 넘어갑니다. Service가 생성되면 app.module.ts와 관련 파일이 생성되어 있음을 확인할 수 있습니다. imp lab.cliel.com nest에서 유효성을 검증하기 위해서는 아래와 같이 class-validation을 설치합니다. npm i class-validator class-transformer 설치가 완료되면 Model 디렉터리의 student.ts파일에 아래 내용을 추가합니다. export class studentVali..

    [nestjs] Service

    [nestjs] Service

    nestjs에서 Service를 생성하려면 다음 명령을 사용합니다. nest g s Service 이름을 입력하고 다음으로 넘어갑니다. Service가 생성되면 app.module.ts와 관련 파일이 생성되어 있음을 확인할 수 있습니다. import { Module } from '@nestjs/common'; import { AppController } from './app.controller'; import { AppService } from './app.service'; import { SchoolController } from './school/school.controller'; import { SchoolService } from './school/school.service'; @Module({ ..

    [nestjs] controller

    [nestjs] controller

    nestjs에서 controller를 추가하기 위해서는 CLI를 사용합니다. 우선 nest명령을 내려보면 위와 같이 설치 가능한 항목이 나열되는데 이를 통해 어떤 형태로 명령을 내릴 수 있는지 확인할 수 있습니다. 위 내용에 따라 신규로 무엇인가를 생성하려면 generate(줄여서g)가 필요하며 컨트롤러는 controller(줄여서 co)가 필요하다는 사실을 알 수 있습니다. 이러한 형식에 따라 다음 명령으로 controller를 생성합니다. nest g co 명령을 내리고 나면 생성할 Controller의 이름을 묻게 되는데 적당한 이름을 입력하고 다음으로 넘어갑니다. 예제에서는 school로 하였으며 이름을 입력하고 나면 Controller의 생성이 완료됩니다. Controller를 생성하고 나면 a..

    [nestjs] 시작하기

    [nestjs] 시작하기

    1. 구조 확인하기 우선 설치가 완료된 디렉터리에 가서 package.json을 확인합니다. "scripts": { "prebuild": "rimraf dist", "build": "nest build", "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", "start": "nest start", "start:dev": "nest start --watch", "start:debug": "nest start --debug --watch", "start:prod": "node dist/main", "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", "test": "jest", "test:watch"..

    [NestJS] 소개및 설치

    [NestJS] 소개및 설치

    ※ 아래 내용을 진행하기 위해서는 node.js와 Express, TypeScript의 설치가 먼저 선행되어야 합니다. node.js에서 웹서비스를 제공하는 데 사용되는 가장 대표적인 모듈이 Express입니다. NestJS는 NodeJS 프레임워크로서 Express 위에서 동작합니다. 또는 설정에 따라서 Express와 비슷한 다른 웹 모듈(fastify와 같은)에서도 동작할 수 있는데 중요한 점은 웹서비스를 만들기 위한 기본구조를 제공한다는 것입니다. TypeScript를 기본으로 사용하며 매우 쉽고 구조적으로 체게화된 서비스를 만들 수 있습니다. 우선 다음 방법으로 nest cli를 설치합니다. npm -i g @nestjs/cli 설치완료 후 nest 명령을 내려 설치가 정상적으로 되었는지 확인합..