[개발] Nestjs 에서 Sequelize 이용하기steemCreated with Sketch.

in hive-141202 •  2 years ago 

안녕하세요 @realmankwon 입니다.

NestJS에서 Sequelize를 사용하여 테이블을 다루는 일반적인 방법은 다음과 같습니다:

1 . Sequelize 설정 구성

  • SequelizeModule.forRoot()를 사용하여 Sequelize 설정을 구성합니다. 이는 AppModule 또는 각각의 모듈에서 수행할 수 있습니다. 아래는 기본적인 구성 예시입니다.
import { SequelizeModule } from '@nestjs/sequelize';

@Module({
  imports: [
    SequelizeModule.forRoot({
      dialect: 'postgres',
      host: 'localhost',
      port: 5432,
      username: 'your-username',
      password: 'your-password',
      database: 'your-database',
      autoLoadModels: true, // 모델 자동 로드 활성화
      synchronize: true, // 모델과 데이터베이스 테이블 동기화
    }),
  ],
})
export class AppModule {}

2 . 모델 생성

  • 각 테이블에 대한 모델을 생성합니다. 모델은 Sequelize 모델 클래스를 확장하여 정의됩니다. 예를 들어, User 테이블에 대한 모델을 생성하는 예시는 다음과 같습니다.
import { Model, Column, Table } from 'sequelize-typescript';

@Table
export class User extends Model<User> {
  @Column
  firstName: string;

  @Column
  lastName: string;

  @Column
  email: string;
}

3 . 모델 등록

  • 생성한 모델을 Sequelize에 등록합니다. SequelizeModule.forRoot()에서 models 속성을 사용하여 등록할 수 있습니다.
import { SequelizeModule } from '@nestjs/sequelize';
import { User } from './user.model';

@Module({
  imports: [
    SequelizeModule.forRoot({
      // Sequelize 설정
      models: [User], // 모델 등록
    }),
  ],
})
export class AppModule {}

4 . 서비스나 컨트롤러에서 모델 사용

  • 필요한 서비스나 컨트롤러에서 등록한 모델을 사용할 수 있습니다. @InjectModel() 데코레이터를 사용하여 모델을 주입받습니다.
import { Injectable } from '@nestjs/common';
import { InjectModel } from '@nestjs/sequelize';
import { User } from './user.model';

@Injectable()
export class UserService {
  constructor(
    @InjectModel(User)
    private readonly userModel: typeof User,
  ) {}

  async findAll(): Promise<User[]> {
    return this.userModel.findAll();
  }

  // 다른 메서드들...
}

위의 단계를 따르면 NestJS에서 Sequelize를 사용하여 테이블을 다룰 수 있습니다. SequelizeModule을 사용하여 Sequelize를 설정하고 모델을 등록하고, 필요한 서비스나 컨트롤러에서 등록한 모델을 주입받아 사용합니다.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

아비트럼 네트워크가 요즘 잘 안되나요~?
어제 업뷰 어닝에서 받은 이더리움 확인하러 메타마스크를 열었는데 아비트럼네크워크가 연결이 안되더라고요~

@happypray 님 안녕하세요~ 제가 지금 테스트를 해 보는데 딱히 이상은 없는 것 같습니다~ 계정 잔액이나 트랜잭션 내역이 궁금하신 경우에는 https://arbiscan.io/ 에 계정 주소를 입력해보시고, https://chainlist.org/?search=arbitrum 로 접속하여 메타마스크에 아비트럼 네트워크를 추가해보시면 될 것 같습니다~!

넵 확인해 보겠습니다~

지금은 잘 되네요~~ㅎㅎㅎ