[nodeJS] sequelize

jungmin kim·2022년 2월 23일
0

NodeJS

목록 보기
5/6

sequelize를 쓰는 이유

: node.js와 mySQL을 연동하기 위해서

mysql 설치 하는 방법

https://thebook.io/080229/ch07/02/01/

sequelize 설치 명령어

npm i sequelize
npm i sequelize-cli
npm i mysql2

sequelize 시작 명령어

npx sequelize init

생성된 config.json파일에 정보 변경 사항 입력(username, password 등)

models 폴더 - index.js 파일도 함께 생성
아래와 같이 코드 변경

models / index.js

const Sequelize = require('sequelize');
const env = process.env.NODE_ENV || 'development';
const config = require('../config/config')[env];
const db = {};

const sequelize = new Sequelize(config.database, config.username, config.password, config);
//sequelize = node랑 mysql을 연동시켜주는 역할

Object.keys(db).forEach(modelName => {
  if (db[modelName].associate) {
    db[modelName].associate(db);
  }
});

db.sequelize = sequelize;
db.Sequelize = Sequelize;

module.exports = db;

필요한 모델들 파일로 만들어주기

ex)
user.js

module.exports = (sequelize, DataTypes) => {
  const User = sequelize.define('User', { // Mysql - 소문자로 저장 users 테이블 생성
    // id가 기본적으로 들어있다.
    email: {
      type: DataTypes.STRING(30), //STRING, TEXT, BOOLEAN, INTEGER, FLOAT, DATETIME,
      allowNull: false, //필수
      unique: true //고유한 값
    },
    nickname: {
      type: DataTypes.STRING(30),
      allowNull: false //필수
    },
    password: {
      type: DataTypes.STRING(100),
      allowNull: false //필수
    },
  }, {
    charset: 'utf8', //이모티콘까지 하려면 'utf8mb4'
    collate: 'utf8_general_ci', //한글 저장
  });
  User.associate = (db) => {}; //관계형은 이 내부에 기입
  return User;
}

0개의 댓글