본문 바로가기
NestJs

[NestJs] 게시물에 시간 추가하기

by teamnova 2024. 4. 14.

안녕하세요.오늘은 지난 시간에 이어 게시물에 게시한 날짜와 시간을 같이 입력해 저장해 볼게요.

먼저 moment-timezone 라이브러리를 설치해주세요.

그리고 date.util.ts라는 파일을 만들어 줄게요. 그때 그때 사용해도 좋지만 미리 세팅해놓고 가져다 쓰는게 나중에는 편할거에요

import * as moment from 'moment-timezone';

export default class DateUtils {

    // 2024-04-01 19:40:34
    static momentNow(): string {
        return moment().tz('Asia/Seoul').format('YYYY-MM-DD HH:mm:ss');
    }

    // 18:00
    static momentTime(): string {
        return moment().tz('Asia/Seoul').format('HH:mm');
      }
}

이런식으로 원하는데로 커스텀을 하시면 됩니다.

그 다음에는 entity에 date를 추가해보세요.

@Column()
    date: string;

이걸 추가하면 끝입니다. 그리고 dto에도 date를 추가해주시고 유효성 검사하는 데코레이터는 추가하시면 안됩니다.

그리고 repository 파일에 가서

async createBoard(createBoardDto: CreateBoardDto): Promise<Board> {
        createBoardDto.date = DateUtils.momentNow();
        const board = this.create(createBoardDto);

        try {
            await this.save(board);
            return board;
        }catch(error){
            throw new InternalServerErrorException();
        }
    }

date만 저렇게 추가해주면 끝입니다.

이렇게 게시물에 날짜가 추가된걸 확인할 수 있을거에요!