현재 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 {}
+++ 추가 작성해야함....