본문 바로가기

Node/Node.js교과서

[Node] sequelize

Sequelize는 SQL을 작업을 쉽게 할수있게 도와주는 node의 라이브러리다 

 

- Spring에서 Mybatis와 마찬가지로 ORM(Object Relational Mapping)에 속하며 객체와 데이터를 1:1 매핑해준다

- 사용되는 RDB로는 (MariaDB,Postgre,SQLite,MSSQL,MySql)등이 있다.

- 자바스크립트 문법으로 데이터베이스를 조작하는것이 가능하다.

 

사용하기 위해서는 반드시 npm i sequelize sequlize-cli를 사용하고

예제연습은 mysql과 연결되므로 mysql2(Node.js와 MySQL)을 연결해주는 라이브러리들을 설치해서 사용했다.

 

라이브러리 설치가 완료되면 npm sequelize init을 통해 시퀼라이즈 구조를 생성해준다.

 

모델 옵션들

시퀼라이즈 모델의 자료형은 MySQL의 일반 자료형과는 표현이 다르다.

MySQL 시퀼라이즈
VARCHAR(100) STRING(100)
INT INTEGER
TINYINT BOOLEAN
DATETIME DATE
INT UNSIGNED INTEGER.UNSIGNED
NOT NULL allowNull: false
UNIQUE unique: true
DEFAULT now() defaultValue: Sequelize.NOW

 

define 메서드에서 세번째 인자는 테이블의 옵션을 의미한다.

timestamps: true 일 경우 createdAt(생성시간),updatedAt(수정시간) 컬럼을 자동으로 만든다

paranoid :  true면 deletedAt(삭제시간) 컬럼을 만듬, 로우 복구를 위해 완전히 삭제하지않고 deletedAt 컬럼에 표시하는것도 가능하다.

underscored : 카멜케이스로 생성되는 컬럼을 스네이크케이스로 생성

modelName: 모델이름, tableName은 테이블이름을 설정

charset과 collate는 한글 설정을 위해 필요하다 (이모티콘을 넣으려면 utf8mb4) 

'Node > Node.js교과서' 카테고리의 다른 글

[Node] express -3  (0) 2023.05.19
[Node] express -2  (0) 2023.05.19
[Node] express -1  (0) 2023.05.04