Nodejs - Sequelize (1)

이율곡·2023년 2월 27일
0

Node js

목록 보기
17/26
post-thumbnail

Sequelize

Sequelize란, ORM 라이브러리 중 하나로 SQL 쿼리 작성 없이도 객체 지향적으로 처리할 수 있게 도와준다. Javascript 객체를 사용하여 DB를 조작할 수 있게 해준다.

간단예시

const Sequelize = require('sequelize');

const sequelize = new Sequelize('database', 'username', 'password' {
	host: 'localhost',
    dialect: 'mysql2'
});

const User = sequelize.define('user', {
	name: {
    	type: sequelize.STRING,
        allowNull: false
    },
    age: {
    	type: sequelize.INTEGER
        allowNull: false
    }
});

sequelize.sync({ force: true })
	.then(() => { console.log("동기화 완료"); })
    .catch((err) => {console.log(err); })

위의 코드는 Sequelize의 간단한 활용예시이다. 가장 처음 Sequelize 모듈을 가져와서 sequelize 객체를 생성했다. 그 다음 User라는 모델을 생성하고 마지막에는 sync() 메서드로 모델을 동기화했다.

CRUD 예시

Create

User.create({ name: 'John', age: 26 })
	.then((user) => { console.log(user.toJSON); })
    .catch((err) => { console.log(err); });

create() 메서드로 새로운 레코드를 생성했다. 반환 형태가 Promise이기 때문에 then(), catch() 메서드를 사용했다.

Read

User.findAll()
	.then((users) => {
    	console.log(users.map(user => { user.toJSON }));
    })
    .catch((err) => { console.log(err) });

findAll() 메서드로 테이블의 값을 찾아 JSON 형태로 반환했다. map() 메서드를 활용해서 기존 배열이 갖고 있는 각 요소를 변환하여 새로운 배열을 만들었다.

Update

User.update({ age: 28 }, { where: { name: 'John' })
	.then((result) => { console.log(result); })
    .catch((err) => { console.log(err); });

update() 메서드로 테이블의 레코드 값을 수정했다. where 옵션을 추가하여 update할 요소를 추렸다.

Delete

User.destroy({ where: { name: 'John' }})
	.then(console.log('Clear!'))
    .catch((err) => { console.log(err); });

delete는 destroy() 메서드를 활용한다. where 옵션으로 원하는 요소를 추려 레코드를 삭제할 수 있다.

정리하기

이번에는 Sequelize 라는 라이브러리에 대해 공부했다. 이전까지는 MySQL만을 사용하여 DB를 다루었지만, 이렇게 라이브러리를 활용한 적은 Java에서 JPA를 다룬 이후로 오랜만이다. 간단한 것들만 공부해서 어려움은 없었지만 나중에 어려움이 찾아오기 때문에 탄탄히 기초를 준비해야겠다.

profile
음악을 좋아하는 사람이 음악을 만들 듯, 개발을 좋아하게 될 사람이 쓰는 개발이야기

0개의 댓글