라이브러리 설치

- TypeORM

$ npm install --save @nestjs/typeorm typeorm mysql2

 

- Typeorm naming strategies

$ npm install typeorm-naming-strategies --save

 

TypeORM 설정

app.module -> 


@Module({
  imports: [
    TypeOrmModule.forRoot({
      type: 'mysql',
      host: 'localhost', //'127.0.0.1',
      port: 3306,
      username: 'root',
      password: '',
      database: 'test_typeORM',
      // entities: [User],
      autoLoadEntities: true, // 자동으로 엔티티 불러오는 옵션
      synchronize: true,
      logging: true,
      namingStrategy: new SnakeNamingStrategy(),
    })
  ],

 

아래 설정을 작동하게 하려면 -> BoardModule 도 import 해야함

autoLoadEntities: true

 

board.module.ts 에서 BoardModule 생성

import { Module } from '@nestjs/common';
import { BoardService } from './board.service';
import { BoardController } from './board.controller';
import { TypeOrmModule } from '@nestjs/typeorm';
import { Board } from './board.entity';
@Module({
  imports: [TypeOrmModule.forFeature([Board])],
  controllers: [BoardController],
  providers: [BoardService],
})
export class BoardModule {}

 

이러면 신기하게도 board가 알아서 생성이 된다.

 

그후 service 에서 board 를 선어해주면 내가 게시물을 게시하면 게시가된다.

@Injectable()
export class BoardService {
  constructor(
    @InjectRepository(Board)
    private readonly boardRepository: Repository<Board>,
  ) {}

'프로그래밍 > Nest.js' 카테고리의 다른 글

[ NestJS ] Modules  (0) 2024.04.18
[ NestJS ] Providers  (0) 2024.04.18
[ NestJS] DTO?  (0) 2024.04.17
[ NestJS ] Controllers  (0) 2024.04.15
[ NestJS ] 시작하기  (0) 2024.04.15

+ Recent posts