Sequelize
데이터베이스 내 테이블에 관계를 설정해주는 모듈
Procedure
Sequelize 초기화하기
npx sequelize init
Config 파일에서 DB 언어 및 DB 연결 설정하기
// Sqlite을 이용하기 때문에 .db 파일로 설정함
"dialect": "sqlite",
"storage": "post.db"
모델 정의하기
작업에 필요한 테이블들을 /models
폴더에 정의하기
데이터베이스와 모델을 동기화하기
동기화 실행 시 sync 메서드가 반환하는 Promise를 이용: 각각 성공 또는 실패 시 실행할 코드를 chaining해서 작성하기
models.sequelize
.sync({ force: false }) // 이미 테이블이 있을 때 삭제하고 다시 생성하지 않도록 설정하기
.then(() => {
// 동기화가 성공적으로 완료될 경우에 처리할 코드: 콘솔에 출력하기
console.log(`DB connected using ORM...`);
})
.catch((err) => {
// 동기화가 실패할 경우에 처리할 코드: 오류를 출력하고 앱을 종료하기
console.log(`DB Error: ${err}`);
process.exit();
});
라우터에서 Callback 함수 실행 시 async
/ await
처리하기
// 게시글 목록보기
app.get("/posts", async (req, res) => {
const posts = await models.Post.findAll({
include: [
{
model: models.Comment,
require: true,
},
],
});
res.json({ data: posts });
});