노드 학습 17일차
안녕하세요 🐸
오늘은 시퀄라이즈 모델 생성에 대해 공부해봤습니다.
모델 생성
모델은 설정하기 나름이지만 기본적인 설정은 아래와 같습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
const Sequelize = require('sequelize');
class {모델명} extends Sequelize.Model {
static initiate(sequelize){
{모델명}.init({
{필드명} : {
// 사용 가능한 타입은 시퀄라이즈 문서에서 확인 가능
type : Sequelize.{타입}(사이즈),
기타옵션 예) allowNull, unique,
}
},{
sequelize,
// 코드 작성시 사용할 모델명이 여기
modelName : {자바스크립트에서 사용할 모델명},
tableName : {실제 DB에서의 테이블명},
옵션 예) paranoid, timestamp 등등
})
}
static associate(db){
// 모델간 관계 설정
db.{모델명}.관계설정함수
// 예)
db.{모델명}.hasOne(db.{대상모델})
}
}
큰 틀은 바뀌지 않습니다.
** 주의 사항 ⚠️ **
제가 범한 큰 실수로 모델 내에서 관계를 만들기 위해 사용하는 함수의 명칭을 associate
를 사용하지 않고 associations
를 사용한 부분입니다.
vscode 사용 시 이를 자동완성 하여 사용하게 되었는데, 여기서 associations 는 모델간의 관계를 객체로써 가지는 속성이기 때문에 이후 index.js
에서 사용할 경우 에러가 발생합니다.
소스 코드를 찾아보면 모델을 설정하면서 각 모델의 associations
속성을 저장하는 부분을 찾을 수 있습니다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.