본문 바로가기

TIL

ORM

Object-Relational Mapping의 줄임말로써,

mysql모듈을 사용할때보다 좀더 친숙한 코드형식(객체형식?)으로 작성할 수 있다.

 

먼저 sequelize모듈을 npm을 이용해 설치해야하며, 예시코드는 다음과 같다.

const { Sequelize } = require('sequelize');
const db = new Sequelize('chat', 'root', '', {     //차례대로 데이터베이스 이름, 유저이름, 비밀번호가 들어간다.
        host: 'localhost',
        dialect: 'mysql'             // mysql, mariadb, postgres, mssql이들어갈 수있으며,
    })                               // mysql의 경우는 mysql2모듈이 필요하다..?
    
var users = db.define('users', {         // 테이블을 정의해준다. 생성은 아직 x
        username : Sequelize.STRING
    })
    
var messages = db.define('messages', {   // 테이블을 정의해준다. 생성은 아직 x
    user_id: Sequelize.INTEGER,
    text: Sequelize.STRING,
    roomname: Sequelize.STRING
})

users.sync()                             // 여기서 실제로 테이블이 생성된다. D.B와 연결시작
.then(function() {
  return user.create({username: 'Peter'});   // INSERT INTO 구문 역할
})
.then(function() {
  return user.findAll({ where: {username: 'Peter'} });  // SELECT 구문역할, (findOne도 사용가능)
})
.then(function(users) {
  users.forEach(function(user) {
    console.log(user.username + ' exist');
  });
  db.close();                  // D.B와 연결 종료
})
.catch(function(err) {         // 에러 핸들링
  console.error(err);
  db.close();                  // D.B와 연결 종료
});

 

'TIL' 카테고리의 다른 글

deploy  (0) 2020.02.18
mysql module  (0) 2020.02.10
Promise  (0) 2020.02.10
20.02.04  (0) 2020.02.04