sequelizeを適用して関係を確立する


続編の適用


1. mysql2, sequelize install


まずライブラリをインストールします.mysql 2は実際のデータに関連する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:カスケードで特定の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 를 지정하지 않아도 됨