포스트

노드 학습 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 속성을 저장하는 부분을 찾을 수 있습니다.


참조 : https://sequelize.org/api/v6/identifiers

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.