ORM

  • 데이터베이스를 객체로 추상화하 시킨것을 ORM (Object Relational Mapping)
  • 쿼리를 직접 작성하는 대신 ORM의 메소드로 데이터 관리할 수 있는 것이 장점
  • NodeJS에는 Sequelize가 대표적인 라이브러리 이다.

Query vs Sequelize

  • insert 쿼리

    INSERT users('name') values ('alice');
    User.create({name : 'alice'})
  • select 쿼리

    SELECT * FROM users;
    User.findAll();
  • update쿼리

    UPDATE users set name = 'bek' WHERE id = 1;
    User.update({name : 'bek'},{where:{id : 1}}});
  • delete 쿼리

DELETE from users WHERE id = 1;
User.destroy({where : {id : 1]});

ORM 모델

  • 데이터베이스 테이블을 ORM으로 추상화한것을 모델이라고 한다.
  • sequelize.define() : 모델 정의
  • sequelize.sync() : 데이터베이스 연동

[model.js]

const Sequelize = require('sequelize');
const sequelize = new Sequelize({
    dialect : 'sqlite',
      storage : './db.sqlite'
});

const User = sequelize.define('User',{
    name : Sequelize.DataTypes.STRING // varchar 255
});

module.exports = {
  Sequelize,
  sequelize,
  User
};

[sync-db.js]


const models = require('../models');

module.exports = ()) => {
    return models.sequelize.sync({force : true});
}

[www.js]

const app = require('../index');
 const syncDb = require('./sync-db');
syncDB().then(() => {
    app.listen(3000);
})