sequelize 적용 및 관계 설정

JOO·2021년 12월 15일
0

node.js

목록 보기
14/15

sequelize 적용

1. mysql2, sequelize install

먼저 라이브러리들을 설치. mysql2의 경우 실제 데이터관련 mysql 을 설치하는게 아님.
그리고 필요한 파일들을 자동으로 생성해주는 init 명령어 입력

npm i mysql2, sequelize
npx sequelize init

2. app.js에 데이터베이스 연동 코드 입력

처음에 너무 에러가 많이나서 도끼 이모지추가..

const { sequelize } = require("./models");

sequelize
  .sync({ force: false })
  .then(() => {
    console.log(`
    🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧
    🚧🚧 DB연결 성공! 이게되네🚧🚧
    🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧
    `);
  })
  .catch((error) => {
    console.error(`
    🪓🪓🪓🪓🪓🪓🪓🪓🪓🪓🪓🪓🪓
    🪓🪓 DB연결 실패! ... 🪓🪓
    🪓🪓🪓🪓🪓🪓🪓🪓🪓🪓🪓🪓🪓
    `);
  });

3. Table간의 관계 설정하기

데이터베이스 모델을 작성하면서 테이블간의 관계도 지정해줘야함. 모델 작성하는 쪽에 적을 수 있음.
(예시)_ Articles 테이블에 있는 "articleId"값을 Comments 테이블에 갖다 넣고, onDelete: "cascade"를 선언해 특정 articleId값이 삭제되면 Comments 테이블에 특정 articleId 들어간 값들도 삭제됨.

// models/articles.js
static associate(models) {
      Articles.hasMany(models.Comments, {
        foreignKey: "articleId",
        onDelete: "cascade",
      })}
// models/comments.js
static associate(models) {
      Comments.belongsTo(models.Articles, { foreignKey: "articleId" })};

// 만약 이렇게 Articles 테이블에 있는 "articleId"을 Comments 테이블과 관계 지어서 집어 넣고 싶을 때 
// Comments 테이블 스키마에 "articleId"를 미리 만들어두면 targetKey 를 지정하지 않아도 됨
profile
개발공부 기록

0개의 댓글

관련 채용 정보