SQL (Sequelize)
SQL (Sequelize)
This chapter applies only to TypeScript
Sequelizeλ λ°λλΌ JavaScriptλ‘ μμ±λ μΈκΈ°μλ ORM (Object Relational Mapper)μ΄μ§λ§ sequelize-typescriptκ° μμ΅λλ€. κΈ°λ³Έ μνμ€μ λν λ°μ½λ μ΄ν° λ° κΈ°ν μΆκ° μΈνΈλ₯Ό μ 곡νλ TypeScript λνΌμ λλ€.
Getting started
μ΄ λΌμ΄λΈλ¬λ¦¬λ‘ λͺ¨νμ μμνλ €λ©΄ λ€μκ³Ό κ°μ μ’ μμ±μ μ€μΉν΄μΌν©λλ€.
μ°λ¦¬κ° ν΄μΌ ν 첫λ²μ§Έ λ¨κ³λ μμ±μμ μ λ¬λ μ΅μ
κ°μ²΄λ‘ Sequelize μΈμ€ν΄μ€λ₯Ό λ§λλ κ²μ
λλ€. λν λͺ¨λ λͺ¨λΈμ μΆκ°ν΄μΌ ν©λλ€ (λμμ modelPaths
μμ±μ μ¬μ©νλ κ²μ) λ° λ°μ΄ν°λ² μ΄μ€ ν
μ΄λΈ sync()
λ₯Ό μ¬μ©ν΄μΌν©λλ€.
warning ννΈ λͺ¨λ² μ¬λ‘μ λ°λΌ
* .providers.ts
μ λ―Έμ¬κ° μλ λ³λμ νμΌλ‘ μ¬μ©μ μ§μ 곡κΈμλ₯Ό μ μΈνμ΅λλ€.
κ·Έλ° λ€μ μμ© νλ‘κ·Έλ¨μ λλ¨Έμ§ λΆλΆμ λν΄ μ‘μΈμ€ ν μ μλλ‘ μ΄λ¬ν 곡κΈμλ₯Ό λ΄ λ³΄λ΄μΌν©λλ€.
μ΄μ μ°λ¦¬λ @Inject()
λ°μ½λ μ΄ν°λ₯Ό μ¬μ©νμ¬ Sequelize
κ°μ²΄λ₯Ό μ£Όμ
ν μ μμ΅λλ€. Sequelize
λΉλκΈ° 곡κΈμμ μμ‘΄νλ κ° ν΄λμ€λ Promise
κ° ν΄κ²°λ λκΉμ§ κΈ°λ€λ¦½λλ€.
Model injection
Sequelizeμμ Modelμ λ°μ΄ν°λ² μ΄μ€μ ν μ΄λΈμ μ μν©λλ€. μ΄ ν΄λμ€μ μΈμ€ν΄μ€λ λ°μ΄ν°λ² μ΄μ€ νμ λνλ λλ€. λ¨Όμ μ°λ¦¬λ μ΅μν νλμ μν°ν°κ° νμν©λλ€.
Cat
μν°ν°λ cats
λλ ν 리μ μν©λλ€. μ΄ λλ ν 리λ CatsModule
μ λνλ
λλ€. μ΄μ μ μ₯μ 곡κΈμλ₯Ό λ§λ€ μ°¨λ‘μ
λλ€.
ννΈ μ€μ μμ© νλ‘κ·Έλ¨μμλ λ§€μ§ λ¬Έμμ΄μ νΌν΄μΌ ν©λλ€.
CATS_REPOSITORY
μSEQUELIZE
λ λͺ¨λ λΆλ¦¬ λconstants.ts
νμΌμ 보κ΄ν΄μΌ ν©λλ€.
Sequelizeμμλ μ μ λ©μλλ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό μ‘°μνλ―λ‘ μ¬κΈ°μ λ³λͺ (alias)μ λ§λ€μμ΅λλ€.
μ΄μ @Inject()
λ°μ½λ μ΄ν°λ₯Ό μ¬μ©νμ¬ CATS_REPOSITORY
λ₯Ό CatsService
μ μ½μ
ν μ μμ΅λλ€.
λ°μ΄ν°λ² μ΄μ€ μ°κ²°μ λΉλκΈ°μ΄μ§λ§ Nestλ μ΅μ’
μ¬μ©μκ° μ΄ νλ‘μΈμ€λ₯Ό μμ ν λ³Ό μ μλλ‘ ν©λλ€. CATS_REPOSITORY
μ 곡μλ db μ°κ²°μ κΈ°λ€λ¦¬κ³ μμΌλ©° CatsService
λ μ μ₯μλ₯Ό μ¬μ©ν μ€λΉκ° λ λκΉμ§ μ§μ°λ©λλ€. κ° ν΄λμ€κ° μΈμ€ν΄μ€ν λλ©΄ μ 체 μμ© νλ‘κ·Έλ¨μ μμν μ μμ΅λλ€.
λ§μ§λ§CatsModule
μ λ€μκ³Ό κ°μ΅λλ€.
warning ννΈ
CatsModule
μ 루νΈApplicationModule
λ‘ κ°μ Έ μ€λ κ²μ μμ§ λ§μμμ€.
Last updated
Was this helpful?