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

in UPVU2 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를 설정하고 모델을 등록하고, 필요한 서비스나 컨트롤러에서 등록한 모델을 주입받아 사용합니다.

Sort:  

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

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

넵 확인해 보겠습니다~

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