Sequelize란?
nodejs에서 mysql을 쉽게 다룰 수 있도록 도와주는
ORM(Object-Relational Mapping)방식의 라이브러리로서 ORM은 객체와 관계형DB의 관계를 매핑해주는 도구입니다.
Sequelize를 사용하면 직접 쿼리를 날리지않고도 자바스크립트 코드로 mysql을 제어(DB테이블생성, select, insert, update, delete..) 할 수 있습니다.
Sequelize, mysql2, path 설치
Sequelize와 함께 기타 효율적인 작업을 위해 mysql2와 path도 함께 설치합니다.
mysql2
node.js환경에서 mysql을 사용하기 위한 편의성 및 효율성을 제공하는 API.
javascript환경에서 발생하는 콜백과 관련한 복잡한 처리와 에러상황들을 편리하게 다룰 수 있도록 도와줍니다.
detail : www.npmjs.com/package/mysql2
path
파일 및 디렉토리경로를 다루는 작업시 유용성을 제공하는 모듈
npm install sequelize path mysql2
yarn add sequelize path mysql2
models디렉토리 추가
Sequelize를 적용하기 전에 DB에 추가할 테이블들의 정보를 서버에 전달하기위해 server 디렉토리 안에 'models' 디렉토리를 추가해줍니다.
models안에 추가할 js파일들은 서버와 연동되면서 DB테이블 역할을 하게됩니다.
db.js를 db.json으로 변경
네트워크상에서 데이터를 주고 받을 때 좀더 효율적인 성능을 위해 server/config안의 db.js를 json형식으로 바꿔줍니다.
{
"development" : {
"host" : "localhost",
"username" : "react_test",
"password" : "1111",
"database" : "react_test",
"dialect" : "mysql"
}
}
models디렉토리에 index.js추가하여 db.json읽어오기
서버가 models디렉토리를 읽을 수 있도록 models폴더 안의 테이블js파일들을 연결, 관리해 줄 index.js를 추가해줍니다.
'use strict';
const path = require('path');
const Sequelize = require('sequelize');
const env = process.env.NODE_ENV || 'development';
const config = require(path.join(__dirname, '..', 'config', 'db.json'))[ env ];
const db = {};
let sequelize = new Sequelize(
config.database,
config.username,
config.password,
config,
{
define: {
charset: 'utf8',
collate: 'utf8_general_ci'
}
}
);
db.sequelize = sequelize;
db.Sequelize = Sequelize;
db.sequelize
.authenticate()
.then(() => {
console.log('Connection has been established successfully.');
})
.catch(err => {
console.log('Unable to connect to the database: ', err);
});
db.secret = '(9*)5$&!3%^0%^@@2$1!#5@2!4';
module.exports = db;
server.js와 Sequelize연동
server폴더에 있는 server.js의 기존 db연결코드를 모두 지우고 아래 코드를 넣어줍니다.
const express = require('express');
const app = express();
const sequelize = require('./models').sequelize;
sequelize.sync();
app.use(express.json());
const PORT = process.env.PORT || 4000;
app.listen(PORT, () => {
console.log(`Server On : http://localhost:${PORT}/`);
})
server와 react를 재시작하여 연결확인
sequelize 연결 성공시 models/index.js안의 'Connection has been established successfully.' 문구가 콘솔창에 출력됩니다.
'React.js > Setting' 카테고리의 다른 글
3. React Sequelize로 Mysql 편리하게 사용하기 - table관계표현 (0) | 2020.08.25 |
---|---|
2. React Sequelize로 Mysql 편리하게 사용하기 - 테이블생성 (0) | 2020.08.25 |
React프로젝트(Node.js서버)와 Mysql연동 (0) | 2020.08.17 |
React 클라이언트와 서버(Node.js) 연동 (4) | 2020.08.17 |
React프로젝트에 웹서버(node.js) 구축 (0) | 2020.08.17 |