๐Ÿ˜Ž ๊ณต๋ถ€ํ•˜๋Š” ์ง•์ง•์•ŒํŒŒ์นด๋Š” ์ฒ˜์Œ์ด์ง€?

[Nest JS ๋กœ CRUD ๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ] (17) ๊ฒŒ์‹œ๋ฌผ ์ƒ์„ฑํ•˜๊ธฐ ๋ณธ๋ฌธ

๐Ÿ‘ฉ‍๐Ÿ’ป ๋ฐฑ์—”๋“œ(Back-End)/Nest js

[Nest JS ๋กœ CRUD ๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ] (17) ๊ฒŒ์‹œ๋ฌผ ์ƒ์„ฑํ•˜๊ธฐ

์ง•์ง•์•ŒํŒŒ์นด 2023. 6. 3. 23:27
728x90
๋ฐ˜์‘ํ˜•

<๋ณธ ๋ธ”๋กœ๊ทธ๋Š” John Ahn ์˜ ์œ ํŠœ๋ธŒ๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค :-)>

=> ๋”ฐ๋ผํ•˜๋ฉด์„œ ๋ฐฐ์šฐ๋Š” NestJS

 

๐Ÿงธ board.service.ts

    // ๊ฒŒ์‹œ๋ฌผ ์ƒ์„ฑํ•˜๊ธฐ
    async createBoard(createBoardDto: CreateBoardDto): Promise<Board> {
        const {title, description} = createBoardDto;

        const board = this.boardRepository.create({
            title,
            description,
            status: BoardStatus.PUBLIC
        })

        await this.boardRepository.save(board);
        return board;
        
    }

 

ํ›„์— repository ๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด!

๐ŸŽ€ board.repository.ts

import { EntityRepository, Repository } from "typeorm";
import { Board } from "./board.entity";
import { CreateBoardDto } from "./dto/create-board.dto";
import { BoardStatus } from "./board-status.enum";

@EntityRepository(Board)
export class BoardRepository extends Repository<Board> {
    async createBoard(createBoardDto: CreateBoardDto) :Promise<Board> {
        const {title, description} = createBoardDto;
    
        const board = this.create({
            title,
            description,
            status: BoardStatus.PUBLIC
        })
        await this.save(board);
        return board;
    }
}

๐ŸŽ€ board.service.ts

    // ๊ฒŒ์‹œ๋ฌผ ์ƒ์„ฑํ•˜๊ธฐ
    async createBoard(createBoardDto: CreateBoardDto): Promise<Board> {
        return this.boardRepository.createBoard(createBoardDto);       
    }

 

๐Ÿงธ board.controller.ts

    // ๊ฒŒ์‹œ๋ฌผ ์ƒ์„ฑํ•˜๊ธฐ + ์œ ํšจ์„ฑ ์ฒดํฌํ•˜๊ธฐ 
    @Post()
    @UsePipes(ValidationPipe)
    createBoard(@Body() createBoardDto: CreateBoardDto): Promise<Board> {
        return this.boardsService.createBoard(createBoardDto)
    }
728x90
๋ฐ˜์‘ํ˜•
Comments