TypeORM을 배우다.
1. TypeORM
TypeORM은 node.js에서 실행되고 TypeScript로 작성된 객체 관계형 매퍼 라이브러리이다. TypeORM은 MySQL, PostgresSQL, MariaDB, MS SQL Server, Oracle등 여러 데이터베이스를 지원한다. ORM은 객체와 관계형 데이터베이스의 데이터를 자동으로 변형 및 연결하는 작업이다. ORM을 이용한 개발은 객체와 데이터베이스의 변형에 유연하게 사용할 수 있다. 모델을 기반으로 데이터베이스 테이블 체계를 자동으로 생성한다. 데이터 베이스에서 개체를 쉽게 삽입, 업데이트, 삭제할 수 있다.
아래(파랑)는 기존에 자바스크립트로 DB의 데이터에 접근하는 방법으로 쿼리문을 직접 작성해야했다. 하지만 ORM을 사용하면(빨강) 쿼리문을 작성하지않고 쉽게 데이터에 접근할 수 있다.
npm i pg typeorm @nestjs/typeorm --save
pg는 내가 Postgres 데이터베이스를 사용하기 때문에 설치. @nestjs/typeorm은 nestjs에서 TypeORM을 사용하기 위해 연동시켜주는 모듈이고 typeorm은 TypeORM모듈.
2. TypeORM 폴더 및 파일 생성
import { TypeOrmModuleOptions } from '@nestjs/typeorm';
export const TypeORMConfig: TypeOrmModuleOptions = {
type: 'postgres',
host: 'localhost',
port: 5432,
username: 'postgres',
password: 'password',
database: 'board-app',
entities: [__dirname + '/../**/*.entity.{js,ts}'],
synchronize: true,
};
src 폴더 밑에 configs 폴더를 생성하고 그 안에 typeorm.config.ts 파일을 생성한다. TypeORM 설정 파일을 작성해야 한다.
생성한 TypeORMConfig를 루트 모듈에 import해야한다.
// app.module.ts 파일
import { Module } from '@nestjs/common';
import { BoardsModule } from './boards/boards.module';
import { TypeORMConfig } from './configs/typeorm.config';
import { TypeOrmModule } from '@nestjs/typeorm';
// nest g module 모듈명 (모듈 생성 명령어)
// nest : nest cli를 사용하겠다
// g : generate 생성한다
// module : 모듈을
@Module({
imports: [TypeOrmModule.forRoot(TypeORMConfig), BoardsModule],
})
export class AppModule {}
'Back-End > NestJS' 카테고리의 다른 글
[NestJS] 커스텀 파이프 만들기 (0) | 2024.01.17 |
---|---|
[NestJS] 특정 값 찾기에서 없을 때 예외처리 (0) | 2024.01.16 |
[NestJS] Pipe란 / Pipe 적용하기 (0) | 2024.01.15 |
[NestJS] Param을 활용한 ID기준 게시물 찾기 (0) | 2024.01.11 |
[NestJS] DTO 만들기 (0) | 2024.01.09 |