Blog

Sequelize.js

Sequelize.js

Sequelize.js ๋Š” Node.js ๊ธฐ๋ฐ˜์˜ ORM (Object-Relational-Mapping) ์ด๋‹ค.
Sequelize.js ๋Š” Node.js v4 ์ด์ƒ์—์„œ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, Promise ๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค.

๊ณต์‹ ์ง€์› DBMS

โ€ข
MySQL / MariaDB
โ€ข
PostgreSQL
โ€ข
SQLite
โ€ข
MS-SQL

์„ค์น˜

โ€ข
Sequelize ๋Š” DBMS ํŒจํ‚ค์ง€๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์ง€ ์•Š์œผ๋ฏ€๋กœ ์‚ฌ์šฉํ•˜๋ ค๋Š” DBMS ํŒจํ‚ค์ง€๋ฅผ ๋ณ„๋„๋กœ ์„ค์น˜ํ•ด์•ผ๋œ๋‹ค
$ yarn add sequelize $ yarn add mysql
Shell
๋ณต์‚ฌ

์„ค์ •

const Sequelize = require('sequelize'); const sequelize = new Sequelize( 'til', // DB ์ด๋ฆ„ 'username', // ์œ ์ € ๋ช… 'password', // ๋น„๋ฐ€๋ฒˆํ˜ธ { host: 'localhost', // ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ˜ธ์ŠคํŠธ ( defualt localhost ) dialect: 'mysql' // DBMS ์ข…๋ฅ˜ } );
JavaScript
๋ณต์‚ฌ

๋ชจ๋ธ ์ƒ์„ฑ

sequelize.define('TIL', { id: { type: Sequelize.INTEGER, primaryKey: true, autoIncrement: true }, content: { type: Sequelize.STRING, allowNull: false }, create_ts: { type: Sequlieze.INTEGER, allowNull: false, default: 0 } })
JavaScript
๋ณต์‚ฌ

๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

TIL.create({ content: 'Practive of Sequelize.js', create_ts: new Date().getTime() })
JavaScript
๋ณต์‚ฌ

๋ฐ์ดํ„ฐ ์กฐํšŒ

โ€ข
findOne(), findAll() ๋ฉ”์†Œ๋“œ๋กœ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค
TIL.findAll({ where: { id: 1 } })
JavaScript
๋ณต์‚ฌ

๋ฐ์ดํ„ฐ ์—…๋ฐ์ดํŠธ

TIL.update({ content: 'WOW' }, { where: { id: 1 } })
JavaScript
๋ณต์‚ฌ

๋ฐ์ดํ„ฐ ์‚ญ์ œ

TIL.destory({ where: { id: 1 } })
JavaScript
๋ณต์‚ฌ

์ฐธ๊ณ 

โ€ข
http://docs.sequelizejs.com/manual/installation/getting-started.html
โ—ฆ
๊ณต์‹ Document ๋ฅผ ๋ณด๋Š”๊ฒŒ ๊ฐ€์žฅ ์ข‹๋‹ค
โ€ข
http://webframeworks.kr/tutorials/expressjs/expressjs_orm_one/