※ 인프런 '따라하면서 배우는 NestJS'강의를 시청하고 정리한 글입니다.
게시글의 구성 (기본)
아이디 - 게시글을 구분짓는 고유 식별자. id는 고유한 값(1개당 1아이디)이다.
공개/비공개글 - 게시글이 공개 아니면 비공개글로 설정해야 하므로 enum으로 설정
제목
게시글
날짜
작성자
... 이런식으로 나누어볼 수 있다.
여기 강의에서 집중할 부분은 바로
아이디(id:string) 공개/비공개글(enum:boardStatus(PRIVATE,PUBLIC), 제목(title:string) 게시글(description:string) 이렇게 총 4가지 분야라고 보자.
이런 식으로 여기에 쓰이는 데이터 타입들을 한 번에 정리해주는 역할을 하는 곳이 model 이다.
NestJS에서는 model.ts를 정의하는 2가지의 방법이 있다.
1) interface : data type만 체크
2) class : data type + instance 생성 가능
이 강의에서는 interface를 통하여 board.model.ts를 생성한다. 그래서 board를 구성하는 data type만 체크하게 된다.
※ 만약 DB를 연동한다면 entity 파일을 작성하는데 이때 entity 파일에 model을 구성하는 요소들이 들어가게 되므로 model.ts 파일은 필요가 없다.
boards.model.ts
export interface Board {
title: string;
description: string;
id: string;
status: BoardsStatus;
}
export enum BoardsStatus {
PUBLIC = 'PUBLIC',
PRIVATE = 'PRIVATE',
}
주의 -> board interface에 대한 인터페이스 내의 데이터들의 끝마침은 ;
boardStaus enum에 대한 데이터들의 끝마침은 , (아마 데이터를 구분짓는 요소로 , 를 사용하지 않을까 싶다)
boards.controller.ts
import { Controller, Get } from '@nestjs/common';
import { BoardsService } from './boards.service';
import { Board } from './boards.model';
@Controller('boards')
export class BoardsController {
constructor(private boardsService:BoardsService) {}
@Get()
getAllBoard(): Board[] {
return this.boardsService.getAllBoards();
}
}
boards.service.ts
import { Injectable } from '@nestjs/common';
import { Board } from './boards.model';
@Injectable()
export class BoardsService {
private boards: Board[]=[]; // board에 대한 정보가 들어감. 이 데이터 형식이 어떻게 들어가냐?
getAllBoards(): Board[] {
return this.boards;
}
}
이번 강의에서 중요했던 사안은 Board는 1개의 게시글에 대한 내용인데, 게시글이 1개만 작성될 것이 아니므로
배열 []로 type을 지정해서 Board의 return type 또한 [] 배열 형태로 리턴했음을 알 수 있다.
'Backend > NestJS' 카테고리의 다른 글
[TypeORM] @OneToMany 그리고 @ManyToOne에서 추가로 알게 된 것들 (0) | 2023.07.02 |
---|---|
unknown_request_mapping_exception_1.UnknownRequestMappingException(metatype); (0) | 2023.03.24 |
NestJS에서의 의존성 주입(Dependency Injection) (0) | 2023.03.16 |
NestJS Controller,Service 톺아보기(+ Decorator/Handler 차이,Provider,@Injectable ) (0) | 2023.03.16 |
nest.cli.json에서 source root(프로그램 시작점) 찾기 (0) | 2023.03.15 |