본문 바로가기

Javascript/Node

[node] Sequelize DB 접속

728x90
반응형

 

본 포스트를 포함한 Sequelize 관련 모든 포스트는 mysql을 기반으로 작성되었으며, mysql이 반드시 설치되어 있어야 합니다. 

mysql 및 Workbench는 설치법을 구글링해 보시면, 간단하게 설치하실 수 있습니다.

 

먼저 mysql sequelize 인스톨한다.

cmd
package.json

.env 파일을 생성하여 DB정보를 입력한다.

.env

models라는 폴더를 생성하여 아래 index.js 파일을 생성한다.

생성한 index.js 파일에 아래와 같이 코딩한다.

var Sequelize = require('sequelize');
var path = require('path');
var fs = require('fs');
var dotenv = require('dotenv'); 

dotenv.config(); //LOAD CONFIG

//.env 파일에 있는 정보들에 접근
const sequelize = new Sequelize( process.env.DATABASE,
process.env.DB_USER, process.env.DB_PASSWORD,{
    host: process.env.DB_HOST,
    dialect: 'mysql',
    timezone: '+09:00', //한국 시간 셋팅
    operatorsAliases: Sequelize.Op,-----
    pool: {
        max: 5,
        min: 0,
        idle: 10000
    }
});

let db = [];

fs.readdirSync(__dirname)
    .filter(file => {
        return file.indexOf('.js')&& file !== 'index.js'
    })
    .forEach(file => {
        var model = sequelize.import(path.join(__dirname,
            file));
            db[model.name] = model;
    });

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

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

module.exports = db; 

index.js

app.js 아래 소스를 추가한다.

// db 관련
const db = require('./models');

// db 접속
this.dbConnection();

dbConnection(){
        // DB authentication
        db.sequelize.authenticate()
        .then(() => {
            //실행 성공
            console.log('Connection has been established successfully.');
        })
        .then(() => {
            console.log('DB Sync complete.');
        })
        .catch(err => {
            console.error('Unable to connect to the database:', err);
        });
    }

cmd창에서 스타트 해보면 정상적으로 DB 접속이 가능한 것을 확인할 있다.

출처 : 본 포스트는 패스트캠퍼스의 Node 웹 프로그래밍 올인원 패키지 Online의 박준영 강사님의 강의를 보고 직접 정리한 내용입니다. 

728x90
반응형

'Javascript > Node' 카테고리의 다른 글

[node] Sequelize에서의 DB 입력  (0) 2020.09.07
[node] Sequelize에서의 모델 작성  (0) 2020.09.07
[node] nunjucks macro  (0) 2020.09.07
[node] 404, 500 error handling  (0) 2020.09.07
[node] Global View Variable  (0) 2020.09.07