본문 바로가기
NestJs

[NestJs] 게시판 생성 및 불러오기

by teamnova 2024. 2. 29.

안녕하세요. 오늘은 지난 시간에 생성한 board 모듈을 이용해 게시판 생성 및 불러오는 작업을 해보겠습니다.

 

먼저 controller 작업하기 전에 DTO를 보고 넘어가겠습니다.

NestJs는 DTO를 사용해 데이터 형식을 지정합니다. 이는 데이터 전송 객체의 약자이며, 또 다른 역할로는 서버에서 요청을 처리하기 전에 데이터의 유효성을 검사할 수 있습니다.

그럼 먼저 board폴더 안에 board.dto.ts를 생성해 보겠습니다.

export class CreateBoardDto {

    title: string;

    description: string;
}

이렇게 요청할 데이터 형식을 미리 만들어서 받을 수 있습니다. 그리고 유효성 검사를 위해 따로 설정을 해야 되는데 이는 다음 시간에 하겠습니다.

 

먼저 Service부터 작성해보겠습니다. 데이터베이스는 우선 사용하지 않고 메모리 상으로 보관하고 불러오겠습니다.

(board.service.ts)

import { Injectable } from '@nestjs/common';
import { CreateBoardDto } from './board.dto';

@Injectable()
export class BoardService {
    private boards = [];

    create(createBoardDto: CreateBoardDto){
        this.boards.push(createBoardDto);
        return createBoardDto;
    }

    getAll(){
        return this.boards;
    }
}

 

다음은 controller 파일입니다.(board.controller.ts)

 

import { Body, Controller, Get, Post } from '@nestjs/common';
import { BoardService } from './board.service';
import { CreateBoardDto } from './board.dto';

@Controller('board')
export class BoardController {
    constructor(
        private boardService: BoardService
    ){}

    @Post()
    create(@Body()createBoardDto: CreateBoardDto) {
        return this.boardService.create(createBoardDto);
    }

    @Get()
    getAll(){
        return this.boardService.getAll();
    }
}

 

작성은 모두 마쳤고 테스트는 Postman으로 하겠습니다.

 

테스트로 1,2 모두 작성하였고 response로 서비스에서 작성한 createBoardDTO형식으로 오는걸 확인할 수 있습니다.

이제 GET요청으로 작성한 모든 게시물을 불러오는것도 확인할 수 있습니다.

다음 시간은 유효성 검사를 해보겠습니다.