Sequelize란?
- sequelize는 javascript ORM 중 하나
- ORM은 프로그래밍 언어로 database를 쓰기 쉽게 해주는 도구
프로그래밍 언어 - SQL을 연결해주는 다리 역할
install
npm i express nunjucks morgan sequelize sequelize-cli mysql2
npm i -D nodemon
- sequelize-cli : sequelize 명령어를 사용하기 위한 도구
- mysql2 : MySQL - sequelize 연결하는 드라이버
init
npx sequelize init
Sequelize 사용
코드 작성
model/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;
app.js
const express = require('express');
const path = require('path');
const morgan = require('morgan');
const nunjucks = require('nunjucks');
const { sequelize } = require('./models');
const app = express();
app.set('port', process.env.NODE_ENV || 3001);
app.set('view engine', 'html');
nunjucks.configure('view', {
express: app,
watch: true,
});
sequelize
.sync({ force: false })
.then(() => {
console.log('데이터베이스 연결 OK');
})
.catch((err) => {
console.error(err);
});
app.use(morgan('dev'));
app.use(express.static(path.join(__dirname, 'public')));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use((err, req, res, next) => {
res.locals.message = err.message;
res.locals.error = process.env.NODE_ENV !== 'production' ? err : {};
res.status(err.status || 500);
res.render('error');
})
app.listen(app.get('port'), () => {
console.log(app.get('port'), '번 포트 대기');
})
config/config.json
{
"development": {
"username": "root",
"password": "1234",
"database": "nodejs",
"host": "127.0.0.1",
"dialect": "mysql"
},
...
}
실행