MongoDB의 ODM Mongoose가 있듯이
Sequlize는 Mysql의 ORM(Object-relational Mapping)이다.
즉 nodejs에서 mysql을 쉽게 다룰 수 있도록 도와주는 라이브러리 입니다.
최신 트렌드에 따르면 typeorm knex mysql 3가지와 비교 해보았을 때 가장 많이 사랑 받고있는 패키지!
405 Mb 파일을 다운로드 받기를 한다.
> npm i sequelize mysql mysql2
> npm i -g sequelize-cli
> sequelize init
config, models, migrations, seeders 폴더가 생깁니다. models안에 index.js를 수정해야 합니다.
config : sequelize를 사용하기 위해 환경을 설정하는 부분
/models/index.js : Model을 정의하고 관계를 설정하는 부분
const Sequelize = require("sequelize");
const comment = require("./comment");
const hashtag = require("./hashtag");
const image = require("./image");
const post = require("./post");
const user = require("./user");
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.Comment = comment;
// db.Hashtag = hashtag;
// db.Image = image;
// db.Post = post;
// db.User = user;
Object.keys(db).forEach((modelName) => {
if (db[modelName].associate) {
db[modelName].associate(db);
}
});
db.Comment = require("./comment")(sequelize, Sequelize);
db.Hashtag = require("./hashtag")(sequelize, Sequelize);
db.Image = require("./image")(sequelize, Sequelize);
db.Post = require("./post")(sequelize, Sequelize);
db.User = require("./user")(sequelize, Sequelize);
db.sequelize = sequelize;
db.Sequelize = Sequelize;
module.exports = db;
models폴더 안의 파일들 ERD 정리가 index.js 이다!
const express = require("express");
const cors = require("cors");
const session = require("express-session");
const cookieParser = require("cookie-parser");
const dotenv = require("dotenv");
const morgan = require("morgan");
const db = require("./models");
dotenv.config();
const app = express();
db.sequelize
.sync()
.then(() => {
console.log("db 연결 성공");
})
.catch(console.error);
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.get("/", (req, res) => {
res.send("hello express");
});
app.listen(3065, () => {
console.log("서버 실행 중!");
});
unhandled rejection sequelizeconnectionerror: unknown database
오류가 발생 시
>>>sequelize db:create
입력으로 디비를 생성 해주면 된다!