8.7 sequelize ์‚ฌ์šฉ ํ™˜๊ฒฝ ์„ค์ • ๋ณ€๊ฒฝ(useable multiple database in sequelize)

์‚ฌ์šฉํ•˜๋‹ค๋ณด๋‹ˆ ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ์ ์ด ์žˆ์–ด์„œ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์€ ์ถ”ํ›„์— ์—…๋ฐ์ดํŠธํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์›๋ž˜๋Š” ํ˜ผ์ž ๊ณต๋ถ€๋ชฉ์ ์œผ๋กœ ์“ฐ๋‹ค๊ฐ€ ์‹ค๋ฌด์—์„œ ์ ์šฉํ•˜๋ ค๋‹ค๋ณด๋‹ˆ ๊ธฐ์กด์— ์“ฐ๋˜ ๊ตฌ์กฐ์—์„œ ๋ณ€๊ฒฝ์˜ ํ•„์š”์„ฑ์˜ ๋Š๊ปด์กŒ์Šต๋‹ˆ๋‹ค. ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ƒ์šฉ๊ณผ ๊ฐœ๋ฐœํ™˜๊ฒฝ์— ๋”ฐ๋ผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์—์„œ ํ•„์š”์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์„œ๋ฒ„DB์™€ ์ƒ์šฉ์„œ๋ฒ„DB๊ฐ€ ์™„๋ฒฝํ•˜๊ฒŒ ์ผ์น˜ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— entity ์ƒ์„ฑ๋„ ๋ณ„๊ฐœ๋กœ ๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ ์ฑ•ํ„ฐ๊นŒ์ง€ ์ง„ํ–‰ํ–ˆ๋‹ค๋ฉด sequelize ๋ฌธ๋ฒ• ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•œ js ํŒŒ์ผ๋“ค (๋ณดํ†ต entity๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.) ์ด ์ƒ์„ฑ๋˜์—ˆ์„ ๊ฒ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์œ„์™€๊ฐ™์€ ์ œ์•ฝ์‚ฌํ•ญ์„ ํ•ด๊ฒฐํ•ด์•ผํ•œ๋‹ค๋ฉด index.js ํŒŒ์ผ๋ถ€ํ„ฐ sequelize-auto ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ entity๋ฅผ ์ƒ..

Node.js/Node.js ๊ณต๋ถ€ 2019. 10. 27. 17:08
8.6 sequelize-auto ๋ชจ๋“ˆ ์‚ฌ์šฉํ•˜๊ธฐ

์˜ค๋žœ๋งŒ์— ๋‹ค์‹œ ๊ธ€์„ ์“ฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. Sequelize๋ฅผ ์“ธ ์ผ์ด ๊ฐ‘์ž๊ธฐ ์ƒ๊ธฐ๊ฒŒ ๋˜์—ˆ๋„ค์š”~ ์ด์ „๊นŒ์ง€๋Š” sequelize๋ฅผ ์ด์šฉํ•ด define ๋œ ํ…Œ์ด๋ธ” ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์ง„ํ–‰์„ ํ–ˆ์—ˆ๋Š”๋ฐ, ๋งŒ์•ฝ Models ๋””๋ ‰ํ† ๋ฆฌ์— ์ œ๊ฐ€ ์ •์˜ํ•˜์ง€ ์•Š์€ ํ…Œ์ด๋ธ”์ด ์žˆ๋‹ค๋ฉด ๊ทธ ํ…Œ์ด๋ธ”์„ sequelize๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”? ํ”ํžˆ ๋งํ•˜๋Š” DML๊ตฌ๋ฌธ์€ sequelize ์—์„œ๋Š” Model ๊ฐ์ฒด์—์„œ๋งŒ ์žˆ๋Š” ๋ฉ”์†Œ๋“œ ์ž…๋‹ˆ๋‹ค. ์ด ๋ง์€ ์ฆ‰, models ๋””๋ ‰ํ† ๋ฆฌ์— ํ…Œ์ด๋ธ” ์ •๋ณด ํŒŒ์ผ์ด ์žˆ์„ ๋•Œ findOne์ด๋‚˜ update ๋“ฑ๊ณผ ๊ฐ™์€ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทผ๋ฐ ๋‚ด๋ถ€ DB์—๋Š” ์žˆ๋Š”๋ฐ ์ œ models ๋””๋ ‰ํ† ๋ฆฌ์— ๊ทธ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ js ํŒŒ์ผ์ด ์—†๋‹ค๋ฉด ๊ฒฐ๊ตญ ๊ทธ ํ…Œ์ด๋ธ”์€ ์กฐ์ž‘์ด ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค๋ฉด models ๋””๋ ‰ํ† ๋ฆฌ์•ˆ์— ์ด ๋‘๊ฐœ์˜ ํŒŒ..

8.5 Sequelize ์™ธ๋ž˜ํ‚ค๋กœ ์ฐธ์กฐ ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰ํ•˜๊ธฐ

์™ธ๋ž˜ํ‚ค๋ฅผ ๊ฐ–๋Š” ํ…Œ์ด๋ธ”์„ ์ •์˜ํ•˜๋Š” ์ด์œ ๋Š” ํ•ด๋‹น ํ‚ค ๊ฐ’์„ ํ†ตํ•ด ์ฐธ์กฐํ•˜๋Š” ํ…Œ์ด๋ธ”์˜ ์ •๋ณด๋ฅผ ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•จ์ด์ฃ . ์ด๋Ÿฐ ์ƒํ™ฉ์„ ๊ฐ€์ •ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ ํ…Œ์ด๋ธ”์˜ id๊ฐ’์€ index ์—ญํ• ์„ ํ•˜๋Š” ๊ธฐ๋ณธ ํ‚ค ์ด๊ณ , board ํ…Œ์ด๋ธ”์˜ fk_userId ํ•„๋“œ๋Š” userํ…Œ์ด๋ธ”์˜ ์™ธ๋ž˜ํ‚ค์ž…๋‹ˆ๋‹ค. ์ฆ‰ fk_userId์˜ ๊ฐ’์„ ํ†ตํ•ด์„œ user ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ์–˜๊ธฐ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. board ๋ฅผ ๊ฒŒ์‹œํŒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๊ฒŒ์‹œํŒ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํ•„๋“œ๋Š” ๊ฐ€์žฅ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•œ๋‹ค๋ฉด ์ œ๋ชฉ๊ณผ ๋‚ด์šฉ์„ ๊ฐ€์ง€๊ณ  ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทผ๋ฐ ์ด ๊ธ€์„ ์“ด ์‚ฌ๋žŒ์ด ๋ˆ„๊ตฐ์ง€๋ฅผ ์•Œ๊ณ ์‹ถ์œผ๋ฉด user ํ…Œ์ด๋ธ”์—์„œ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์™€์•ผํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฒŒ์‹œํŒ ๊ธ€์„ ๋กœ๋”ฉํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด๋ณด์•˜์Šต๋‹ˆ๋‹ค. 123456789101112131415161718192021222324252627..

8.3 Sequelize foreignKey ์ง€์ •ํ•˜๊ธฐ(cascade ์ ์šฉ)

๊ฐ„๋งŒ์— Sequelize๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ง€๋‚œ๋ฒˆ์—๋Š” ํ…Œ์ด๋ธ” ์ •์˜๊นŒ์ง€๋งŒ ํ•ด๋ณด์•˜๋Š”๋ฐ ํ…Œ์ด๋ธ” ์ •์˜ ์ค‘ ์™ธ๋ž˜ํ‚ค์— ๊ด€ํ•œ ๊ฑธ ํฌ์ŠคํŒ… ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ฌด๋Ÿฐ ๊ด€๊ณ„๊ฐ€ ์—†๋Š” ๋…๋ฆฝ์ ์ธ ํ…Œ์ด๋ธ”์„ ์ •์˜ํ•˜๋Š”๊ฑด ๋ฌด์˜๋ฏธํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๊ธฐ๋•Œ๋ฌธ์— ์ด๋ถ€๋ถ„์„ ๊ณต๋ถ€ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์™ธ๋ž˜ํ‚ค์˜ ์ •์˜์™€ ๊ฐ™์€ ์ž์„ธํ•œ ๊ฐœ๋…์€ ์ƒ๋žตํ•˜๊ณ  ๋„˜์–ด๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค. ์ผ๋‹จ ์ œ ํ…Œ์ด๋ธ”์˜ ์ •์˜๋Š” ์ด๋ ‡๊ฒŒ ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋‹จ ํ…Œ์ด๋ธ” ์ •์˜๋ฅผ ํ•œ jsํŒŒ์ผ์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. [user.js]123456789101112131415161718192021222324252627282930313233343536373839404142434445464748var models = require('../models');module.exports = function (sequelize, ..

8.2 Sequelize ํ™˜๊ฒฝ settingํ•˜๊ธฐ

์ด ํ™˜๊ฒฝ์„ค์ •์„ ํ•˜๋Š”๋ฐ ํ•œ์ฐธ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ์—ˆ๋‹ค ใ…  ๋‹ค์‹œํ•œ๋ฒˆ ์ฐจ๊ทผ์ฐจ๊ทผ ๋ฆฌ๋ทฐํ•ด๋ณด์ž.. 1. npm ์„ค์น˜ 1npm install sequelizecs 1npm install mysqlcs => ๋Š˜ ์ด ๋‹จ๊ณ„๊นŒ์ง€๋Š” ๋„ˆ๋ฌด ์ˆœ์กฐ๋กญ๋‹ค. sequelize ์„ค์น˜์™€ ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๋ ค๋Š” mysql์„ ์„ค์น˜ํ•ด์ค€๋‹ค. (๊ณต์‹์ ์œผ๋กœ PostgreSQL, MySQL, MariaDB, SQLite, MS-SQL์„ ์ง€์›ํ•œ๋‹ค.) ์„ค์น˜์˜ต์…˜์€ ์œ„์—๋Š” ์“ฐ์ง€ ์•Š์•˜์ง€๋งŒ --save๋กœ ํ•ด์ฃผ๋Š”๊ฒŒ ์ข‹์„ ๋“ฏ ํ•˜๋‹ค. 2. ๋””๋ ‰ํ† ๋ฆฌ(ํด๋”) ์ƒ์„ฑ ๋‚˜๋„ ์—ด์‹ฌํžˆ ๊ตฌ๊ธ€๋งํ•˜๋ฉด์„œ ๋”ฐ๋ผํ•œ ๊ฒƒ์ด๋ผ ์ด๋Ÿฐ ๋””๋ ‰ํ† ๋ฆฌ ๋„ค์ด๋ฐ์ด ๋ฌด์กฐ๊ฑด ๋งž๋Š”์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ํ˜„์žฌ ๋‚ด๊ฐ€ ๋”ฐ๋ฅด๊ณ  ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. 1) config=> DB์˜ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” json ํŒŒ์ผ์„ ๋‹ด๊ณ ์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ์ด๋‹ค. ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ์— ..

8.1 Node js ORM ( Sequelize.js ) ์†Œ๊ฐœ

( ์—ฌ๊ธฐ์„œ๋ถ€ํ„ฐ๋Š” ์ƒํ™œ์ฝ”๋”ฉ์˜ ๋‚ด์šฉ๊ณผ๋Š” ์•ฝ๊ฐ„ ๋ณ„๊ฐœ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ) ํ”ํžˆ DB๋ผ๊ณ  ํ•˜๋ฉด SQL๋ฌธ์„ ์ด์šฉํ•œ ์ฟผ๋ฆฌ๋ฅผ ์งœ๋Š” ํ–‰๋™์„ ์ƒ๊ฐํ•˜๊ฒŒ ๋œ๋‹ค.Select * from Member;์™€ ๊ฐ™์ด ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ ๊ฐ€๊ณต์„ ์œ„ํ•œ ์ฟผ๋ฆฌ๋ฌธ์„ ๋˜์ ธ์ฃผ๋Š” ํ˜•ํƒœ๊ฐ€ ์ผ๋ฐ˜์ ์ธ๋ฐ, ๋‚˜๋Š” ์ฟผ๋ฆฌ๋ฌธ์—๋„ ์ต์ˆ™์น˜๊ฐ€ ์•Š๊ณ , Node js ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ƒํ™ฉ์—์„œ ํ•˜๋‚˜์˜ ์–ธ์–ด๋กœ DB๊นŒ์ง€ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ์ข‹๋‹ค๊ณ  ์ƒ๊ฐ์ด ๋“ค์–ด์„œ ์ฐพ๊ฒŒ๋œ ๋ฐฉ๋ฒ•์ด๋‹ค.์ผ๋‹จ ORM์ด๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋˜๋Š”๋ฐ Sequelize์™€ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ORM ์ด๋ผ๊ณ  ํ•œ๋‹ค. ORM์ด๋ž€?ORM(Object Relational Mapping)์€ application๊ณผ Database์‚ฌ์ด๋ฅผ ๋งตํ•‘์‹œ์ผœ์ฃผ๋Š” ๋„๊ตฌ์ด๋‹ค. ํ•œ์ธต๋” ์ถ”์ƒํ™”๋œ layer์—์„œ Database์— ๋Œ€ํ•œ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค. ..

6. express ์ฟผ๋ฆฌ์ŠคํŠธ๋ง ์‚ฌ์šฉ

์—ฌ๊ธฐ์„œ๋Š” URL์„ ํ†ตํ•ด์„œ ์—ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ด…๋‹ˆ๋‹ค. ๊ทธ ์ค‘์—์„œ express ์—์„œ ์ œ๊ณตํ•˜๋Š” query ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค.์ผ๋‹จ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ผ์šฐํ„ฐ๋ฅผ ํ†ตํ•ด ์ ‘๊ทผํ•˜๋Š” ๊ตฌ๋ฌธ์€ 123app.get('/topic',function(req,res) { res.send('hello');});Colored by Color Scriptercs ์ด์™€ ๊ฐ™์ด ์“ธ ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฉด 3000ํฌํŠธ๋กœ ์ ‘๊ทผํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฐ€์ •ํ•˜์— localhost:3000/topic ์˜ url๋กœ ์ ‘๊ทผํ–ˆ์„ ๋•Œ ์›นํŽ˜์ด์ง€์— hello ๋ผ๋Š” ๋ฌธ์ž์—ด์ด ๋‚˜์˜ฌ ๊ฒƒ์ด๋‹ค. ๊ธฐ์กด์— ์•Œ๊ณ ์žˆ๋˜ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ๋‹ค๋ฅธ ํŽ˜์ด์ง€์— ์ ‘๊ทผํ•˜๋ ค๋ฉด ๋‹ค๋ฅธ ๋ผ์šฐํ„ฐ๋ฅผ ํ†ตํ•ด์„œ ์ ‘๊ทผ์„ ํ•ด์•ผํ–ˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค๋ฉด '/form'๋ผ์šฐํ„ฐ๋กœ ์ ‘๊ทผํ•œ๋‹ค๋˜๊ฐ€ ํ•˜๋ฉด localhost:3000/fo..

5. ํ…œํ”Œ๋ฆฟ ์—”์ง„ pug

์ด๋ฒˆ์—” ํ…œํ”Œ๋ฆฟ ์—”์ง„์ด๋ผ๋Š” ๊ฑธ ์†Œ๊ฐœํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•˜๋Š” ์—”์ง„์€ pug(ํ˜„) jade(๊ณผ๊ฑฐ) ๋ผ ๋ถˆ๋ ธ๋˜ ํ…œํ”Œ๋ฆฟ ์—”์ง„ ์ค‘์— ํ•˜๋‚˜์ด๋‹ค. ํ˜„ ์‹œ์ ์—์„œ ๋‹ค์šด๋ฐ›์œผ๋ ค๋ฉด pug๋ฅผ ์จ์•ผํ•œ๋‹ค. ์ผ๋‹จ ๋Š˜ ๊ทธ๋ ‡๋“ฏ์ด npm install์„ ํ•ด์•ผํ•œ๋‹ค. $ npm install pug --save ๋’ค์— --save์™€ ๊ฐ™์€ ์˜ต์…˜๋ถ€๋ถ„์€ ์„ ํƒ์‚ฌํ•ญ์ด์ง€๋งŒ ์ผ๋‹จ ๋ชจ๋ฅด๋ฉด --save๋ฅผ ๊ธฐ๋ณธ ์˜ต์…˜์œผ๋กœ ๋‘๊ณ  ์‚ฌ์šฉํ•ด๋„ ๋ฌด๊ด€ํ•˜๋‹ค. ์•„๋งˆ ํ˜„์žฌ init ํ•˜๊ณ ์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ์— ํ•œํ•ด์„œ๋งŒ npm์„ installํ•˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ์ฆ‰ ๋‹ค๋ฅธ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ๋Š” ๊ทธ ๋ชจ๋“ˆ์„ ๋‹ค์‹œ ์„ค์น˜ํ•˜์ง€ ์•Š๋Š” ์ด์ƒ ์‚ฌ์šฉ ๋ชปํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ๋ฌผ๋ก  -g๋ผ๊ณ ํ•ด์„œ ์ „์—ญ์œผ๋กœ ์„ค์น˜ํ•˜๋Š” ์˜ต์…˜๋„ ์žˆ๋Š”๋ฐ npm์„ ํฌ์ŠคํŒ…ํ•˜๋Š”๊ฑด ์•„๋‹ˆ๋‹ˆ ์ผ๋‹จ ์—ฌ๊ธฐ๊นŒ์ง€.. ์ผ๋‹จ ์›นํŽ˜์ด์ง€๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ html ์ฝ”๋“œ๊ฐ€ ํ•„์š”ํ•˜..

๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
ยซ   2024/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ