-
Node #2 Sequelize공부/Node 2021. 7. 9. 16:15
Sequelize
Node에서 mysql을 쉡가 다룰 수 있도록 도와주는 라이브러리
Node의 대표적인 ORM 이다
MySQL, PostgreSQL, MariaDB 등 많은 RDBMS 를 지원한다
Promise 기반으로 구현되어 비동기 로직을 편리하게 작성할 수 있다
ORM
Object Relational Mapping
객체와 관계형 데이터베이스의 데이터를 자동으로 매핑 해주는 것
객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용한다
쿼리를 작성하지 않아도 객체의 메서드를 활용하는 것처럼 쿼리 로직을 작성할 수 있다.
설치
MySql 과 Sequelize 를 사용하기 위해 mysql2, sequelize, sequelize-cli 를 설치한다
sequelize-cli : 시퀄라이즈 명령어를 실행하기 위한 패키지
mysql2 : MySql 과 시퀄라이즈를 연결해주는 드라이버, mysql2 자체가 데이터베이스 프로그램은 아니다
sequelize-cli 를 전역으로 설치해야 sequelize 커맨드를 사용할 수 있다
전역 설치 없이 명령어로 사용하려면 npx 명령어를 사용한다
npm i sequelize mysql2 npm i -g sequelize-cli
초기화
sequelize init
npx sequelize init
초기화를 하고 나면 필요한 파일들이 자동으로 생성된다
config : 데이터베이스 설정, username, DB이름, password 등이 담겨있다
migrations : 데이터베이스의 변화하는 과정들을 추적하는 정보, 실제 데이터베이스에 반영할 수도 있고 취소할 수도 있다.
models : 데이터베이스 각 테이블의 정보와 필드타입을 정의하고 객체로 만든다
seeders : 테이블에 기본 데이터를 넣을 때 사용
환경설정
models/index.js
const Sequelize = require('sequelize') const env = process.env.NODE_ENV || 'development' const config = require('../config/config.json')[env] const db = {} const sequelize = new Sequelize(config.database, config.username, config.password, config) db.sequelize = sequelize module.exports = db
config/config.json
"development": { "username": "root", "password": "root", "database": "test_node", "host": "127.0.0.1", "dialect": "mysql" },
development : process.env.NODE_ENV || 'development' 일 때 적용된다
username : MySql username
password : MySql 비밀번호
database : 데이터베이스 이름
app.js
const { sequelize } = require('./models') sequelize.sync({ force: false }) .then(() => { console.log('데이터베이스 연결') }) .catch((err) => { console.log(err) })
force 옵션 :
true 일 경우 서버 실행 시마다 테이블을 재생성한다
실행
node app.js
결과
반응형'공부 > Node' 카테고리의 다른 글
Node #1 프로젝트 시작하기 (0) 2021.07.09