본문 바로가기
DBMS/4. 웹서버-DB서버 통신

시퀄라이즈1. 환경셋팅

by 혀닙 2022. 4. 29.

목차

  1. sequelize와 sequelize-cli 설치
  2. init

 

 

 

 

1. 설치

1.-1 커맨드 라인 입력하여 sequelize와 mysql2 설치

$ npm install sequelize mysql2

 

 

 

1-2. cli로 sequelize를 조작할 수 있는 sequelize-cli를 전역으로 설치

npm install -g sequelize-cli

 

 

 

2. sequelize init

2-1. init 커맨드 입력

  • sequelize를 사용할 디렉토리로 이동한 후 터미널에 init 입력
$ sequelize init

 

 

커맨드 입력 후 init 완료 시 아래와 같이

  • config, models, migrations, seeders라는 디렉토리가 자동으로 생성
  • config 디렉토리 내에는 config.json이라는 파일이 생성
  • models 디렉토리 내에는 index.js라는 파일 생성

된다.

 

 

 

2-2. models 디렉토리의 index.js파일 확인

자동으로 생성된 index.js파일은 아래와 같은 내용을 담고 있을 것이다.

각 코드 단락의 역할은 다음과 같다.

  • config.json 파일의 설정값을 읽어서 sequelize 객체를 생성
  • models 폴더 안에 있는 js model 들을 취합하는 역할
  • 불러온 데이터들을 쉽게 사용할 수 있도록 하는 JS 객체 인 db 객체를 생성
'use strict';

const fs = require('fs');
const path = require('path');
const Sequelize = require('sequelize');
const basename = path.basename(__filename);
const env = process.env.NODE_ENV || 'development';
const config = require(__dirname + '/../config/config.json')[env];
const db = {};


//sequelize 객체 생성
let sequelize;
if (config.use_env_variable) {
  sequelize = new Sequelize(process.env[config.use_env_variable], config);
} else {
  sequelize = new Sequelize(config.database, config.username, config.password, config);
}


//model 취합
fs
  .readdirSync(__dirname)
  .filter(file => {
    return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
  })
  .forEach(file => {
    const model = require(path.join(__dirname, file))(sequelize, Sequelize.DataTypes);
    db[model.name] = model;
  });

  //db 객체 생성
Object.keys(db).forEach(modelName => {
  if (db[modelName].associate) {
    db[modelName].associate(db);
  }
});

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

module.exports = db;

 

 

 

'DBMS > 4. 웹서버-DB서버 통신' 카테고리의 다른 글

sequelize  (0) 2022.05.04
# 4-3 mysql2 - 프로미스 API  (0) 2022.03.26
# 4-2 mysql2 - 커넥션 풀  (0) 2022.03.26
# 4-1 mysql2 - 기본  (0) 2022.03.26

댓글