Database

황성호·2021년 3월 12일
0

NestJs

목록 보기
4/4

현재 nestjs로 로그인, 게시판 정도를 구현할 계획이다. 더 자세한내용은 공식문서를 참고하기 바랍니다

Nest는 데이터베이스에 구애받지 않고 SQL, 또는 NoSQL를 통합하여 사용 가능

SQL과 NoSQL을 통합하기 위해 @nestjs/typeorm를 제공

MySQL을 사용해서 실습해보자

설치

npm install --save @nestjs/typeorm typeorm mysql2

위 명령어로 mysql typeorm을 설치할 수 있다

//app.module.ts
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';

@Module({
  imports: [
    TypeOrmModule.forRoot({
      type: 'mysql',
      host: 'localhost',
      port: 3306,
      username: 'root',
      password: 'root',
      database: 'test',
      entities: [],
      synchronize: true,
    }),
  ],
})
export class AppModule {}

설치 후 root AppModule에 TypeOrmModule을 import할 수있다

위 config값은 루트디렉토리에 ormconfig.json을 사용할 수있음
공식문서 참고!

Repository pattern

//user.entity.ts
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';

@Entity()
export class User {
  @PrimaryGeneratedColumn()
  id: number;

  @Column()
  firstName: string;

  @Column()
  lastName: string;

  @Column({ default: true })
  isActive: boolean;
}

ts파일은 어디에 두어도 상관없으나 같은 도메인내에 두는것이 좋음

User 엔티티를 사용하기 위해서는 forRoot메소드 옵션에 넣어야 함

//app.module.ts
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { User } from './users/user.entity';

@Module({
  imports: [
    TypeOrmModule.forRoot({
      type: 'mysql',
      host: 'localhost',
      port: 3306,
      username: 'root',
      password: 'root',
      database: 'test',
      entities: [User],
      synchronize: true,
    }),
  ],
})
export class AppModule {}

+++ 추가 작성해야함....

profile
개발!

0개의 댓글