NestJS는 모든 SQL들과 잘 연동할 수 있다. 그리고 연동을 할 때 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에서 제공해준다.
ormconfig.json을 프로젝트 루트에 생성하고 아래처럼 코드를 작성하자.
password 및 database를 수정해주면된다. entities안에 dist안에 경로가 있는 이유는 빌드한 후 비정상적으로 작동하는 것을 방지하기위한 것입니다.
이렇게 사용해주면
이렇게 간단하게 아까의 코드를 좀 더 보기좋게 바꿀 수 있다.
entity디렉토리를 만들고 안에 user.entity.ts를 만들어 아래의 코드를 적어주자.
이렇게 @Entity 데코레이터 아래에 export로 시작하는 클래스를 적고
@PrimatyGeneratedColumn을 기본키, @Column을 일반 행이라고 생각하고
엔티티를 작성해준 후, 모듈 파일에선
이런식으로 활용해주면 된다.