반응형
TypeORM이란 무엇인가?
TypeORM은 node.js에서 실행되고 TypeScript에서 작성된 객체 관계형 매퍼 라이브러리 입니다.
TypeORM은 MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle 등을 지원합니다.
ORM (Object Relational Mapping) 이란?
객체와 관계형 데이터 베이스의 데이터를 자동으로 변형 및 연결하는 작업입니다.
ORM을 이용한 개발은 객체와 데이터베이스의 변형에 유연하게 사용할 수 있습니다.
TypeORM 설치
npm i typeorm @nestjs/typeorm
npm i mysql2 // 사용하고 싶은 데이터베이스 설치
TypeORM 연결하기
typeORM 설정파일 생성
본인은 src/configs/typeorm.config.ts 로 생성

typeORM 설정파일 작성
import { TypeOrmModuleOptions } from "@nestjs/typeorm";
export const typeOrmConfig : TypeOrmModuleOptions = {
type: 'mysql',
host: '127.0.0.1',
port: 3306,
username: 'root',
password: 'root',
database: 'test',
entities: [],
synchronize : true //Production 모드에서는 false로 해야함 데이터를 잃을 수 있음
}
typeORM 설정파일 연결
루트 module에서 import를 합니다.
app.module.ts
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { typeOrmConfig } from './configs/typeorm.config';
import { UsersModule } from './users/users.module';
import { UsersService } from './users/users.service';
@Module({
imports: [TypeOrmModule.forRoot(typeOrmConfig), UsersModule],
controllers: [],
providers: [],
})
export class AppModule {}
Entity 생성하기
본인은 src/entities/Users.ts로 생성
import { Column, Entity, PrimaryGeneratedColumn } from "typeorm";
@Entity()
export class Users {
@PrimaryGeneratedColumn()
id:number
@Column()
name : string
@Column()
password : string
}
Entity 사용하기
users.Service.ts
import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Users } from 'src/entities/Users';
import { Repository } from 'typeorm';
import { CreateUserDto } from './dto/create.user.dto';
@Injectable()
export class UsersService {
constructor(
@InjectRepository(Users)
private usersRepository: Repository<Users>,
) {}
async createUser(data: CreateUserDto) {
try {
await this.usersRepository.create({
name: data.name,
password: data.password,
});
} catch (error) {}
}
}
users.module.ts
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { Users } from 'src/entities/Users';
import { UsersController } from './users.controller';
import { UsersService } from './users.service';
@Module({
imports:[TypeOrmModule.forFeature([Users])], // imports 추가
controllers: [UsersController],
providers: [UsersService]
})
export class UsersModule {}
반응형
'Node.JS' 카테고리의 다른 글
@nestjs/config 사용법 (0) | 2023.02.16 |
---|---|
TypeORM queryRunner를 이용한 트랜잭션 제어 (0) | 2023.02.15 |
NestJS Pipes 이용하기 (0) | 2023.02.10 |
Nest.js를 시작해보자 (0) | 2023.02.09 |
Socket.io 송수신 메소드 (0) | 2023.01.12 |
댓글