mac์ brew๋ก ์ค์น. mysqlworkbench๋ก ์ฐ๊ฒฐํด์ ํ์ธ.
7.6. Sequelize ์ฌ์ฉ
ย
npx sequelize init
โ config, models, migrations, seeders ํด๋๊ฐ ์์ฑ
ย
connection
const db = {}; const sequelize = new Sequelize(config.database, config.username, config.password, config); db.seqeulize = sequelize; module.exports = db;
ย
์ดํ sequelize.sync({ force: false })๋ก ์ฐ๊ฒฐ.
ย
config/config.json ํ์ผ์ ์ฐ๊ฒฐ ๋น๋ฐ๋ฒํธ ์
๋ ฅ.
ย
๋ชจ๋ธ ์ ์ํ๊ธฐ
MySQL์์ ์ ์ํ ํ
์ด๋ธ์ ์ํ๋ผ์ด์ฆ์์๋ ์ ์ํด์ํจ.
ย
๊ฐ ์ด์ ๋ํ ๋ฐ์ดํฐํ์
์ ์ ์ํ๊ณ allowNull, unique, defaultValue ๋ฑ ์ค์ ํด๋์์ ์๋ค.
ย
initiate์์ ๋๋ฒ์งธ ์ธ์๋ก๋ ํ
์ด๋ธ ์ต์
์ ๋ฃ๋๋ค. (ํ
์ด๋ธ๋ช
๋ฌธ์ ์ ์ ๋ฑ๋ฑ)
ย
associate๋ฅผ ํตํด์๋ ํ
์ด๋ธ๊ฐ์ ๊ด๊ณ๋ฅผ ์ค์ ํจ.
ย
์ผ๋๋ค์ธ ๊ฒฝ์ฐ .hasMany ์ผ๋์ผ์ hasOne ๋ฉ์จ๋ ๋ค๋๋ค๋ belongsToMany
ย
sequelize๋ฅผ ํตํด์๋ SQL์์ select, where, order ํ๋ฏ ๊ฐ์ฒด๋ก ์ด๊ฒ์ ์ ์ํด์ ์กฐํ, ์์ , ์์ฑ, ์ญ์ ๋ฅผ ํ๋ค.
ย
์์ ํ
์ด๋ธ์์ ์ฎ์ธ ํ
์ด๋ธ์ ๊ฐ๋ ๊ฐ์ด ๊ฐ์ ธ์ค๋ ค๋ฉด include์ ๊ทธ ๋ชจ๋ธ์ ํฌํจ์์ผ์ผํ๋ค.
ย
CRUD๋ router์์
:id
๋ฑ์ผ๋ก path parameter๋ก ๋ฐ๊ณ ๊ทธ id๋ฅผ where ์กฐ๊ฑด์ ๋ฃ์ด์ ์กฐํ๋ ์ญ์ ๋ฅผ ํ๋ฉด ๊ฐ๋จํ๋ค.