포스코x코딩온 웹 풀스택 양성과정

[포스코x코딩온] 웹 풀스택 과정 6주차 회고 | Sequelize

Codult 2024. 3. 29. 21:31
728x90

Sequelize

자바스크립트 구문을 알아서 SQL로 변환해준다.

📌 Sequelize 설치

npm install sequelize sequelize-cli mysql2

  • sequelize: sequelize 패키지
  • sequelize-cli: sequelize 명령어 실행
  • mysql2: mysql과 sequelize를 연결하는 도구

npx sequelize init : sequelize 명렁어 호출

📌 Sequelize 모델 정의

자바스크립트 구문으로 DB를 다루기 위해서는, DB와 동일하게 모델을 설정해주어야 한다. (즉, mysql에서 정의한 테이블을, sequelize에서도 동일하게 정의해야 함)

  • config.js 파일에 DB 접속 정보를 별도로 저장한다.
  • Models/index.js로 조건에 따라 DB 접속 정보를 불러와 연결되도록 한다.
  • Models 폴더 내 js 파일로 모델을 정의한다. (.define())
Sequelize.define(param1, param2, parma3)

1) 모델명 설정 (param1)

  • 모델명을 설정한다. (param3에서 테이블명을 별도로 설정하지 않으면, 해당 모델명이 테이블명으로 지정된다.)

2) 컬럼 정의 (param2)

  • type: 데이터 타입을 정의 (ex. TEXT, STRING, INTEGER, DATE)
  • primaryKey: 기본키 설정 (default: true)
  • autoIncrement: 숫자 자동 증가 (default: false)
  • allowNull: Null 허용 여부 (default: true)
  • comment: 컬럼에 대한 설명을 작성
  • validate: 데이터 유효성 검사를 하는 속성

3) 모델 옵션 정의 (param3)

  • charset: "utf8"
  • collate: "utf8-general-ci
  • tableName: 테이블명 설정
  • freezeTableName: true로 설정하면 테이블명이 복수로 설정됨 (default: false 일때는 테이블명이 복수형으로 설정됨)
  • timestamps: createdate, update 컬럼이 자동으로 생성됨 (default: true)

📌 Sequelize 쿼리문

  • SQL문에 상응하는 메서드가 존재한다. (즉, SQL문을 자바스크립트로 생성한다.)
  • findAll(): SELECT → 전체를 가져오는 것으로, 결과로 배열을 반환
  • findOne(): SELECT → 하나를 뽑아오는 것으로, 결과로 객체 하나를 반환
  • create(): INSERT
  • update(): UPDATE
  • destroy(): DELETE
  • Promise를 반환한다. (.then()을 붙여 결과값 사용 가능)
 
728x90