[TIL] NestJS 공부 18일차

정인교·2021년 6월 21일
0

TIL(Today I Learned)

목록 보기
29/67
post-thumbnail

데이터베이스

NestJS는 모든 SQL들과 잘 연동할 수 있다. 그리고 연동을 할 때 TypeORM을 이용하여 통합한다.

TypeORM

사용 이유

왜 TypeORM이냐하면 Nest는 Typescript를 사용하고 Typescript에서 사용할 수 있는 ORM이 TypeORM이다.
여기서 ORM은 객체와 관계형 데이터 베이스를 연결시켜주는? 것으로
DB에서 쿼리문을 사용하지 않고 코드에서 객체를 이용하여 가져오는 것이다.

설치

우선 데이터베이스와 NestJS를 통합하기 위해선 설치해야하는 모듈이 있는데
npm install --save @nestjs/typeorm typeorm mysql2
아래의 명령어를 입력해주자. nestjs용 typeorm, 일반 typeorm, mysql2를 설치한다.

이렇게 설치가 끝나면, AppModule에서 import할 수 있다.
비밀번호와 사용 데이터베이스를 알맞게 설정해주자.

메서드

forRoot메서드는 createConnection()모듈을 TypeORM에서 제공해준다.

  • retryAttempts : DB 연결 시도 횟수
  • retryDelay : 연결과 요청의 지연 시간
  • autoLoadEntities : true라면, 엔티티가 자동으로 로드됨(기본값:false)
  • keepConnectionAlive : true라면, 애플리케이션에서 연결이 끊긴다(기본:false)

사용

ormconfig.json을 프로젝트 루트에 생성하고 아래처럼 코드를 작성하자.
password 및 database를 수정해주면된다. entities안에 dist안에 경로가 있는 이유는 빌드한 후 비정상적으로 작동하는 것을 방지하기위한 것입니다.
이렇게 사용해주면
이렇게 간단하게 아까의 코드를 좀 더 보기좋게 바꿀 수 있다.

엔티티 생성

entity디렉토리를 만들고 안에 user.entity.ts를 만들어 아래의 코드를 적어주자.
이렇게 @Entity 데코레이터 아래에 export로 시작하는 클래스를 적고
@PrimatyGeneratedColumn을 기본키, @Column을 일반 행이라고 생각하고
엔티티를 작성해준 후, 모듈 파일에선
이런식으로 활용해주면 된다.

profile
백엔드 개발자 정인교입니다!

0개의 댓글

관련 채용 정보