Node.js 입문기10 - 시퀄라이즈

전클로네·2021년 1월 11일
0

Node.js

목록 보기
8/9

노드에서 MYSQL데이터베이스에 연결을 하고 작업을 쉽게해주는 라이브러리가 시퀄라이즈 입니다.

시퀄라이즈는 ORM(Object-relational Mapping)으로 분류됩니다. ORM은 자바스크립트 객체와 데이터베이스의 릴레이션을 매핑해주는 도구 입니다.

시퀄라이즈를 사용하기 위해 npm을 통해 패키지를 설치합니다.

프로젝트경로> npm i sequelize sequelize-cli mysql2

sequelize-cli는 시퀄라이즈 명령어를 실행하기 위한 패키지 이고 mysql2는 MYSQL과 시퀄라이저를 이어주는 드라이버 입니다.

* 시퀄라이즈 init명령어를 통한 model폴더 생성

프로젝트경로> npx sequelize init

npx사용 이유
npm이 아닌 npx를 사용해 전역설치 없이 명령어로 initialize 진행


모델 정의하기


MYSQL에서 정의한 테이블을 시퀄라이즈에서도 정의해야 사용할 수 있습니다.


* 시퀄라이즈의 특징

  • MYSQL의 테이블과 시퀄라이즈 모델 대응
  • 시퀄라이즈의 모델과 MYSQL테이블을 연결
  • 시퀄라이즈의 모델명은 단수, 테이블 이름은 복수로 사용

* 모델 정의방법

  • MYSQL에 있는 테이블 모델의 정보를 담은 js파일을 생성 후 exports
  • models폴더에 있는 index에서 생성한 js파일 require

* MYSQL과 시퀄라이즈 자료형 비교

MYSQL시퀄라이즈
VARCHAR(100)STRING(100)
INTINTEGER
TINYINTBOOLEAN
DATETIMEDATE
INT UNSIGNEDINTEGER.UNSIGNED
NOT NULLallowNull: false
UNIQUEunique: true
DEFAULT now()defualtValue: Sequelize.now( )

시퀄라이즈의 관계정의하기


* 관계정의

  • 1:N(일대다) 관계 => 1: hasMany메서드 사용, N: belongsTo메서드 사용
  • 1:1(일대일) 관계 => 1: hasMany메서드 사용, 1: belongsTo메서드 사용
  • N:M(다대다) 관계 => N: belongsToMany메서드 사용, M: belongsToMany메서드 사용

쿼리 사용하기


시퀄라이즈로 CRUD 작업을 하려면 시퀄라이즈 쿼리를 알아야 합니다.

  • Node.js 교과서 책 참고하기 ...


참고문서
Node.js 교과서

profile
안녕하세요. 노드로 개발하는 마운틴러버 개발자 입니다.

0개의 댓글