ํฐ์คํ ๋ฆฌ ๋ทฐ
์ค๋๋ง์ ๋ค์ ๊ธ์ ์ฐ๊ฒ ๋ฉ๋๋ค. Sequelize๋ฅผ ์ธ ์ผ์ด ๊ฐ์๊ธฐ ์๊ธฐ๊ฒ ๋์๋ค์~
์ด์ ๊น์ง๋ sequelize๋ฅผ ์ด์ฉํด define ๋ ํ ์ด๋ธ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์งํ์ ํ์๋๋ฐ, ๋ง์ฝ Models ๋๋ ํ ๋ฆฌ์ ์ ๊ฐ ์ ์ํ์ง ์์ ํ ์ด๋ธ์ด ์๋ค๋ฉด ๊ทธ ํ ์ด๋ธ์ sequelize๋ฅผ ํตํด ์ฌ์ฉํ ์ ์์๊น์?
ํํ ๋งํ๋ DML๊ตฌ๋ฌธ์ sequelize ์์๋ Model ๊ฐ์ฒด์์๋ง ์๋ ๋ฉ์๋ ์ ๋๋ค. ์ด ๋ง์ ์ฆ, models ๋๋ ํ ๋ฆฌ์ ํ ์ด๋ธ ์ ๋ณด ํ์ผ์ด ์์ ๋ findOne์ด๋ update ๋ฑ๊ณผ ๊ฐ์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ทผ๋ฐ ๋ด๋ถ DB์๋ ์๋๋ฐ ์ models ๋๋ ํ ๋ฆฌ์ ๊ทธ ํ ์ด๋ธ์ ๋ํ js ํ์ผ์ด ์๋ค๋ฉด ๊ฒฐ๊ตญ ๊ทธ ํ ์ด๋ธ์ ์กฐ์์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค.
์๋ฅผ๋ค๋ฉด models ๋๋ ํ ๋ฆฌ์์ ์ด ๋๊ฐ์ ํ์ผ์ด ์๋ค๊ณ ๊ฐ์ ํด๋ณด๊ฒ ์ต๋๋ค. index.js ํ์ผ์ ํ
์ด๋ธ์ ๋ํ ํ์ผ์ด ์๋๋๊น ์ ์ณ๋๊ณ , ์ด๋ ๊ฒ ๋ฐ์ง๋ฉด sequelize ๋ชจ๋์ ํตํด ์ ์ดํ ์ ์๋ ํ
์ด๋ธ์ mytable์ด๋ผ๋ ํ ๊ฐ ๋ฟ์
๋๋ค.
๋ง์ฝ ์ DB์ user๋ผ๋ ํ ์ด๋ธ์ด ์ค์ ์์๋ค๊ณ ํด๋, ์ models ๋๋ ํ ๋ฆฌ์์ ๊ทธ DB์ ๋ํ ํ์ผ์ด ์๋ค๋ฉด ์ ์ด๊ฐ ๋ถ๊ฐ๋ฅํฉ๋๋ค. ์ฌ์ค ๊ธฐ์ค์ด ๋๋๊ฑด ์ง์ง ๋ฌผ๋ฆฌ์ ์ธ ๋ก์ปฌ DB์ธ๋ฐ sequelize ๋ฌธ๋ฒ ๋ฐ๋ก, SQL๋ฌธ ๋ฐ๋ก ํ ์ด๋ธ์ ์ ์ํ๋๊ฒ ๊ต์ฅํ ๋นํจ์จ์ ์ด์ฃ .
๊ทธ๋์ ๋งจ ์์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๋ก์ปฌ DB์ ์๋ ์ ๋ณด๋ฅผ Sequelize ๋ฌธ๋ฒ์ผ๋ก ์๋ ๋ณํํด์ฃผ์ด์ ํ ์ด๋ธ์ ์ ์ํด์ฃผ๋ ๋ชจ๋์ด ์์ต๋๋ค. ์ฐธ ๋คํ์ด์ฃ ~
$ npm install sequelize-auto
์ด ๋ช
๋ น์ด๋ฅด ํตํด ํด๋น ๋ชจ๋์ ์ค์นํด์ค๋๋ค.
๋ง์ฝ ์ ๊ฐ ์ด์๊ฐ์ ํ ์ด๋ธ์ ํ๋ ๊ฐ์ง๊ณ ์๋ค๊ณ ๊ฐ์ ํ๊ฒ ์ต๋๋ค.
์ด ํ
์ด๋ธ์ sequelize ๋ชจ๋์ ์ด์ฉํด์ ์ฌ์ฉํ๋ ค๋ฉด Model ๊ฐ์ฒด๋ฅผ ์ป์ด์ผํฉ๋๋ค. ์ฆ ์ด ํ
์ด๋ธ์ sequelize ๋ฌธ๋ฒ์ผ๋ก defineํ js ํ์ผ์ด ํ์ํ ๊ฒ์ด์ฃ . auto ๋ชจ๋์ ์ด๊ฑธ ํ๋ฒ์ ํด๊ฒฐํด์ค๋๋ค.
//app.js const Sequelize = require('sequelize'); const SequelizeAuto = require('sequelize-auto'); const auto = new SequelizeAuto('test','root','123',{ host:'localhost', port:'3306' }); auto.run((err)=>{ if(err) throw err; })
๊ต์ฅํ ์งง์ง๋ง ํต์ฌ์ run ๋ฉ์๋์ ๋๋ค. ์ ๋ฉ์๋๊ฐ ์ ์์คํ์์ models ๋๋ ํ ๋ฆฌ ์์ mytables.js ํ์ผ์ด ์๋ ์์ฑ๋ฉ๋๋ค. ํด๋น ํ์ผ์ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
/* jshint indent: 1 */ module.exports = function(sequelize, DataTypes) { return sequelize.define('mytable', { id: { type: DataTypes.INTEGER(11), allowNull: false, primaryKey: true, autoIncrement: true }, name: { type: DataTypes.STRING(10), allowNull: false } }, { tableName: 'mytable' }); };
์ด๋ ๊ฒ ๋ง๋ค์ด์ง๋ฉด ๊ธฐ์กด์ ํ๋ ๊ฒ๊ณผ ๊ฐ์ด models.mytable.findOne ๊ณผ ๊ฐ์ด ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋๊ฒ ์ฃ . ๋ชจ๋ ํ ์ด๋ธ์ด ์ ํํ ๊ตฌ๋ฌธ์ผ๋ก ๋ง๋ค์ด ์ง๋ ์ง๋ ์์ง ์๋ฒฝํ๊ฒ ํ ์คํธํด๋ณด์ง ๋ชปํ์ง๋ง, ์ ๊ฐ ๊ตณ์ด ํ ์ด๋ธ ์ ์ ํ์ผ์ ๋ง๋ค์ง ์์๋ ๋๋ค๋ ๊ฒ์ด ๋งค์ฐ ํธ๋ฆฌํ ๋ชจ๋์ ๋๋ค.
'Node.js > Node.js ๊ณต๋ถ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
8.7 sequelize ์ฌ์ฉ ํ๊ฒฝ ์ค์ ๋ณ๊ฒฝ(useable multiple database in sequelize) (0) | 2019.10.27 |
---|---|
8.5 Sequelize ์ธ๋ํค๋ก ์ฐธ์กฐ ํ ์ด๋ธ ๋ฐ์ดํฐ ๊ฒ์ํ๊ธฐ (0) | 2018.11.01 |
8.4 Sequelize ๋ก DML ๊ตฌํํด๋ณด๊ธฐ (0) | 2018.10.06 |
8.3 Sequelize foreignKey ์ง์ ํ๊ธฐ(cascade ์ ์ฉ) (0) | 2018.09.27 |
8.2 Sequelize ํ๊ฒฝ settingํ๊ธฐ (0) | 2018.06.28 |
- Total
- Today
- Yesterday
- nestjs typeorm
- ๊ธฐ์์ฒญAPI
- docker mysql
- nestjs config
- typeorm
- nestjs directory
- JavaScript
- nestjs configService
- Promise error
- node.js backend
- nestjs/cli
- Spring
- sequelize
- @nestjs/config
- node.js
- Request_Limit_Exceeded
- Promise bulk
- NestJS
- ํ๋ก๊ทธ๋๋จธ์ค
- typeorm ์ฐ๊ฒฐ
- nestjs project
- foreignkey
- nestjs doc
- ๋น๋๊ธฐ ์์ฒญ
- DeferredResult
- backend-framework
- nestjs module
- ์๊ณ ๋ฆฌ์ฆ
- android
- Spring Async
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |