[개발] Nestjs 에서 Sequelize 이용하기
안녕하세요 @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를 설정하고 모델을 등록하고, 필요한 서비스나 컨트롤러에서 등록한 모델을 주입받아 사용합니다.
아비트럼 네트워크가 요즘 잘 안되나요~?
어제 업뷰 어닝에서 받은 이더리움 확인하러 메타마스크를 열었는데 아비트럼네크워크가 연결이 안되더라고요~
@happypray 님 안녕하세요~ 제가 지금 테스트를 해 보는데 딱히 이상은 없는 것 같습니다~ 계정 잔액이나 트랜잭션 내역이 궁금하신 경우에는 https://arbiscan.io/ 에 계정 주소를 입력해보시고, https://chainlist.org/?search=arbitrum 로 접속하여 메타마스크에 아비트럼 네트워크를 추가해보시면 될 것 같습니다~!
넵 확인해 보겠습니다~
지금은 잘 되네요~~ㅎㅎㅎ