Sequelize 세팅하기

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 });
});

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤