Web/NestJS
[nestjs] TypeORM 기존 테이블에서 entity 생성하기
TypeORM을 사용하려면 우선 만들고자 하는 테이블의 사양에 맞게 Entity를 생성해 줘야 합니다. 문제는 이게 TypeORM에 익숙하지 않으면 무척 피곤한 일이라는 건데 다행스럽게도 만들어진 테이블에서 entity를 생성하는 방법이 있습니다. 우선 필요한 테이블을 DB 전용의 툴을 사용해 만들거나 sql 구분으로 만든 다음에 역으로 TypeORM의 entity를 만들어 이걸 nestjs와 연결해 사용하면 될 듯합니다. 설치방법은 아래와 같습니다. npm i -g typeorm-model-generator 설치 후에는 다음의 명령어로 entity를 생성할 수 있습니다. typeorm-model-generator -h localhost -d school -p 3306 -u root -x 1234 -e ..
[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)
이 글은 아래 글에서 이어집니다. [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)
아래 글은 아래 글에서 이어집니다. [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
아래 내용은 이전 포스팅에서 이어지는 내용입니다. [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를 생성하려면 다음 명령을 사용합니다. 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를 추가하기 위해서는 CLI를 사용합니다. 우선 nest명령을 내려보면 위와 같이 설치 가능한 항목이 나열되는데 이를 통해 어떤 형태로 명령을 내릴 수 있는지 확인할 수 있습니다. 위 내용에 따라 신규로 무엇인가를 생성하려면 generate(줄여서g)가 필요하며 컨트롤러는 controller(줄여서 co)가 필요하다는 사실을 알 수 있습니다. 이러한 형식에 따라 다음 명령으로 controller를 생성합니다. nest g co 명령을 내리고 나면 생성할 Controller의 이름을 묻게 되는데 적당한 이름을 입력하고 다음으로 넘어갑니다. 예제에서는 school로 하였으며 이름을 입력하고 나면 Controller의 생성이 완료됩니다. Controller를 생성하고 나면 a..
[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"..