Sequelize Hooks

마데슾 : My Dev Space·2020년 4월 21일
1

sequelize

목록 보기
1/2
'use strict';

const crypto = require('crypto');

module.exports = (sequelize, DataTypes) => {
  const urls = sequelize.define(
    'urls',
    {
      url: DataTypes.STRING,
      baseUrl: DataTypes.STRING,
      code: DataTypes.STRING,
      title: DataTypes.STRING,
      visits: {
        type: DataTypes.INTEGER,
        allowNull: false,
        defaultValue: 0,
      },
      userId: DataTypes.INTEGER,
    },
    {
      hooks: {
        afterValidate: (data, options) => {
          var shasum = crypto.createHash('sha1'); // 알고리즘 방식
          shasum.update(data.url); // 알고리즘으로 값 변환 => data.url: 해싱할 값
          data.code = 'D' + shasum.digest('hex').slice(0, 5); // 변환 값을 입력 받은 방식으로 인코딩
        },
      },
    }
  );

  urls.associate = function (models) {};
  return urls;
};

위의 코드에서 hooks가 하는 역할이 무엇인지 궁금하여 알아보았다.

Hooks는 Sequelize가 실행되기 전후에 호출되는 함수이다. afterValidate는 항상 모델에 저장한 후에 값을 설정하고 싶을때, beforeValidate는 항상 모델에 저장하기 전에 값을 설정하고 싶을때 사용하면 된다.

참고블로그

profile
👩🏻‍💻 🚀

0개의 댓글