-
[m1 맥북] - nest.js 공부하기 5. Board Model 정의하기Nest.js 2022. 4. 26. 23:27728x90
Board Model 정의하기
게시물에 필요한 데이터가 어떤것이 필요한지 정의해주기 위해서 모델이 필요합니다.
board Model 파일 생성 -> board.module.ts
모델을 정의하기 위해서는
Class를 이용하거나 Interface를 이용하면 됩니다.
interface -> 변수의 타입만을 체크합니다.
classes -> 변수의 타입도 체크하고 인스턴스 또한 생성할 수가 있습니다.
board의 구조만 정의하기 위해 interface를 사용.
//board.model.ts export interface Board { id: string; title : string; description: string; status : BoardStatus; } export enum BoardStatus { PUBLIC = 'PUBLIC', PRIVATE = 'PRIVATE' }
여기서 enum이란?
enum 은 enumerated type(열거형)을 의미합니다.
Enum은 값들의 집합을 명명하고 이를 사용할 수 있게 합니다. 일반적으로 우리가 사용하고 있는 열거자들은 주로 식별자입니다.
status에 enum을 이용해서 정의한 BoardStatus를 넣어주면 BoardStatus에서 넣어준 PUBLIC이나 PRIVATE상태만을 사용 할 수 있습니다.
service, controller에 타입 지정 해주기
//service import { Injectable } from '@nestjs/common'; import { Board } from './board.model'; @Injectable() export class BoardsService { private boards: Board[] = []; //private 사용하는 이유는 클래스 내에서만 접근해서 수정 가능하게 하려고. getAllBoards(): Board[]{ //리턴값 타입지정 return this.boards; } } //controller import { Controller, Get } from '@nestjs/common'; import { Board } from './board.model'; import { BoardsService } from './boards.service'; @Controller('boards') export class BoardsController { constructor(private boardsService : BoardsService){} @Get('/') getAllBoard(): Board[] { return this.boardsService.getAllBoards(); } }
타입을 정의해주면 좋은 이유?
타입 정의해주는 것은 선택사항입니다.
하지만 이렇게 타입을 정의해주므로서 원하는 타입과 다른 코드를 사용할 시 에러가 발생합니다.
그리고 코드를 읽는 입장에서 더 코드를 쉽게 이해하며 읽을 수 있습니다.728x90'Nest.js' 카테고리의 다른 글
[m1 맥북] - nest.js 공부하기 7. Data Transfer Object(DTO) (0) 2022.05.21 [m1 맥북] - nest.js 공부하기 6. 게시물 생성하기 (0) 2022.04.27 [m1 맥북] - nest.js 공부하기 4. 모든 게시물을 가져오는 Service 만들기 (0) 2022.04.24 [m1 맥북] - nest.js 공부하기 3. Board Service 만들기 (0) 2022.04.24 [m1 맥북] - nest.js 공부하기 2. NestJS Controller란 ? (0) 2022.04.24