NestJS로 API 만들기 (1) 프로젝트 생성, entity 파일 생성, ESLint 설정

Jiwon Youn·2021년 1월 11일
0

NestJS로 API만들기

목록 보기
1/4
  1. 먼저 npm i -g @nestjs/cli 로 nestjs를 설치한다.

  2. 프로젝트를 생성할 경로에서 nest new [프로젝트명] 으로 프로젝트를 생성한다.

  3. app.module.ts 와 main.ts 만 남기고 새로 controller, module, service 파일을 생성한다. (src 안에 생성)

  • nest g mo products : products.module.ts
  • nest g co products : products.controller.ts
  • nest g s products : products.service.ts
  1. src/products/entities 폴더를 생성한 후 API에서 다룰 객체 파일을 생성한다.


( middleware, common, dto는 이후에 작성 )

  • products.entity.ts
@Entity()
export class Product {
  // 자동으로 1씩 증가해 생성되는 값 (sequence)
  @PrimaryGeneratedColumn()
  @IsNumber()
  id: number;

  @Column()
  @IsString()
  name: string;

  @Column()
  @IsNumber()
  price: number;

  // categories 클래스와 join
  @ManyToOne((type) => Categories, (category) => category.products)
  @JoinColumn()
  category: Categories;

  // table join 시 자동 생성된 categoryId를 명시하여 사용하기 위해 선언
  @RelationId((product: Product) => product.categoryId)
  categoryId: number;
}

products - categories join 시 products에 categoryId라는 내부 컬럼 생성(외래키)
이 값을 사용하기 위해서 @RelationId로 명시하여 선언

  • categories.entity.ts
import { IsNumber, IsString } from 'class-validator';
import { Column, Entity, OneToMany, PrimaryGeneratedColumn } from 'typeorm';
import { Product } from './products.entity';

@Entity()
export class Categories {
  // 자동으로 1씩 증가해 생성되는 값 (sequence)
  @PrimaryGeneratedColumn()
  @IsNumber()
  id: number;

  @Column()
  @IsString()
  categoryName: string;

  // products와 join
  @OneToMany((Type) => Product, (product) => product.category)
  products: Product[];
}

ESLint 설정하기

0개의 댓글