상세 컨텐츠

본문 제목

node.js sequelize

카테고리 없음

by golduny_zoo 2022. 1. 19. 15:25

본문

728x90

nodejs를 이용하여 백엔드를 처음 접하면서 ORM에 대해 처음 알게 되었다. 

ORM(Object-Relational Mapping)은 객체지향 패러다임을 활용하여 관계형 데이터베이스(RDB)의 데이터를 조작하게 하는 기술

우리가 mariaDB를 사용하게 되면서 자연스럽게 사용을 하는 것 같다.

 

post 쪽을 맞게 되었으니 post 테이블을 만들기로 하였는데, 관계형성이 굉장히 어렵다..

module.exports = (sequelize, DataTypes) => {
  const Posts = sequelize.define(
    "Posts",
    {
      user_id: {
        // column 속성들
        type: DataTypes.STRING(30),
        allowNull: true,
        unique: false,
        comment: "제목",
      },
      title: {
        // column 속성들
        type: DataTypes.STRING(30),
        allowNull: true,
        unique: false,
        comment: "제목",
      },
      contents: {
        // column 속성들
        type: DataTypes.STRING(100),
        allowNull: true,
        unique: false,
        comment: "게시물",
      }
    },
    {
      charset: "utf8", // 한국어 설정
      collate: "utf8_general_ci", // 한국어 설정
      tableName: "Post", // 테이블 이름
      createAt: true, // createAt & updateAt 활성화
      paranoid: false, // 테이블을 삭제할 수 없게되며, 삭제요청시 deleteType이 수정된다.
    }
  );
  Posts.associate = function (models) {
    // 관계형성 부분
    // Posts.belongsTo(models.Users, {foreignKey : "user_id", sourceKey:"id"})
    // Posts.belongToMany(models.PostLikes, {foreignKey : "post_id", sourceKey:"id"});
  };
  return Posts;
};