Develop/[NestJs]
[NestJs] TypeOrm 변경 및 Repository
HiSmith
2023. 5. 30. 00:17
반응형
우선 게시물에 대한 Entity를 아래와 같이 바꿨다.
import {
BaseEntity,
Column,
Entity,
OneToMany,
PrimaryGeneratedColumn,
} from 'typeorm';
import { Record } from './record.entity';
@Entity()
export class Board extends BaseEntity {
@PrimaryGeneratedColumn()
uid: number;
@Column()
title: string;
@Column({ unique: true })
userId: string;
@Column()
nickname: string;
@Column()
password: string;
}
board.repository.ts
import { Board } from "src/entities/board.entity";
import { EntityRepository, Repository } from "typeorm";
@EntityRepository(Board)
export class BoardRepository extends Repository<Board>{
}
자 그러면 Repository를 사용해서, CRUD작업을 해보자
서비스를 지우고 전체적으로 리팩토링을 해보자
typeOrm에서 제공하는 findOne메소드를 사용해서 가져온다.
JPA랑 상당히 비슷하다 ㅋ
무튼 해당 메소드로 한개의 게시물을 가져오는 API를 구현해보자
이런식으로 만들 건데, async , await는
데이터베이스를 처리할때 비동기로 처리가 될 것이다.
처리되는 시간이 다 끝나고, 결과값을 받을때, async await를 하면 다 처리가 된 값을 받는다.
만약에 붙이지 않으면 처리 중에 값을 받게 되므로 이상하게 된다.
따라서 async(비동기) await(처리이후)로 해야한다.
아 진행하다가 나온 이슈인데
mysql 과 typeorm의 버전 이슈가있었다.
typeorm의 버전은 0.2.45로 내렸다(공식문서에서 0.2를 사용하라고나와있다 ㅋ)
그럴꺼면 왜 릴리즈 한건가 싶지만 무튼 다음 포스팅에서 정리된 repository와 package json을 다뤄보도록 하자.
반응형