목차
- sequelize와 sequelize-cli 설치
- 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 |
댓글