SQL (TypeORM)
SQL (TypeORM)
This chapter applies only to TypeScript
κ²½κ³ μ΄ κΈ°μ¬μμλ 컀μ€ν νλ‘ λ°μ΄λ λ©μ»€λμ¦μ μ¬μ©νμ¬ TypeORM ν¨ν€μ§λ₯Ό κΈ°λ°μΌλ‘
DatabaseModule
μ μμ±νλ λ°©λ²μ λν΄ μ€λͺ ν©λλ€. κ²°κ³Όμ μΌλ‘ μ΄ μ루μ μλ μ¦μ μ¬μ© κ°λ₯ν μ μ©@nestjs/typeorm
ν¨ν€μ§λ₯Ό μ¬μ©νμ¬ μλ΅ν μ μλ λ§μ μ€λ² ν€λκ° ν¬ν¨λμ΄ μμ΅λλ€. μμΈν λ΄μ©μ [μ¬κΈ°] (/techniques/sql)λ₯Ό μ°Έμ‘°νμμμ€.
TypeORMμ node.js μΈκ³μμ κ°μ₯ μ±μν ORM (Object Relational Mapper)μ λλ€. TypeScriptλ‘ μμ±λμμΌλ―λ‘ Nest νλ μ μν¬μμ μ μλν©λλ€.
Getting started
μ΄ λΌμ΄λΈλ¬λ¦¬λ‘ λͺ¨νμ μμνλ €λ©΄ νμν λͺ¨λ μ’ μμ±μ μ€μΉν΄μΌν©λλ€.
μ°λ¦¬κ° ν΄μΌν 첫λ²μ§Έ λ¨κ³λtypeorm
ν¨ν€μ§μμ κ°μ Έμ¨ createConnection()
ν¨μλ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ² μ΄μ€μ μ°κ²°νλ κ²μ
λλ€. createConnection()
ν¨μλ Promise
λ₯Ό λ°ννλ―λ‘ async providerλ₯Ό λ§λ€μ΄μΌν©λλ€.
warning ννΈ λͺ¨λ² μ¬λ‘μ λ°λΌ
* .providers.ts
μ λ―Έμ¬κ° μλ λ³λμ νμΌλ‘ μ¬μ©μ μ§μ 곡κΈμλ₯Ό μ μΈνμ΅λλ€.
κ·Έλ° λ€μ λλ¨Έμ§ μμ© νλ‘κ·Έλ¨μ λν΄ μ‘μΈμ€ κ°λ₯νλλ‘ μ΄λ€ 곡κΈμλ₯Ό λ΄ λ³΄λ΄μΌν©λλ€.
μ΄μ @Inject()
λ°μ½λ μ΄ν°λ₯Ό μ¬μ©νμ¬ Connection
κ°μ²΄λ₯Ό μ£Όμ
ν μ μμ΅λλ€. Connection
λΉλκΈ° μ 곡μμ μμ‘΄νλ κ° ν΄λμ€λ Promise
κ° ν΄κ²°λ λκΉμ§ κΈ°λ€λ¦½λλ€.
Repository pattern
TypeORMμ 리ν¬μ§ν 리 λμμΈ ν¨ν΄μ μ§μνλ―λ‘ κ° μν°ν°μλ μ체 리ν¬μ§ν λ¦¬κ° μμ΅λλ€. μ΄ λ¦¬ν¬μ§ν 리λ λ°μ΄ν°λ² μ΄μ€ μ°κ²°μμ μ»μ μ μμ΅λλ€.
κ·Έλ¬λ 첫째, μ°λ¦¬λ μ΅μν νλμ μ€μ²΄κ° νμν©λλ€. 곡μ λ¬Έμμμ Photo
μν°ν°λ₯Ό μ¬μ¬μ© ν κ²μ
λλ€.
Photo
μν°ν°λ photo
λλ ν 리μ μν©λλ€. μ΄ λλ ν 리λ PhotoModule
μ λνλ
λλ€. μ΄μ 리ν¬μ§ν 리 곡κΈμλ₯Ό λ§λ€μ΄ λ³΄κ² μ΅λλ€.
warning μλ¦Ό μ€μ μμ© νλ‘κ·Έλ¨μμλ λ§€μ§ λ¬Έμμ΄μ νΌν΄μΌν©λλ€.
PHOTO_REPOSITORY
μDATABASE_CONNECTION
μ λΆλ¦¬ λconstants.ts
νμΌμ 보κ΄ν΄μΌν©λλ€.
μ΄μ @Inject()
λ°μ½λ μ΄ν°λ₯Ό μ¬μ©νμ¬ Repository<Photo>
λ₯Ό PhotoService
μ μ£Όμ
ν μ μμ΅λλ€ :
λ°μ΄ν°λ² μ΄μ€ μ°κ²°μ λΉλκΈ°μ΄μ§λ§ Nestλ μ΅μ’
μ¬μ©μκ° μ΄ νλ‘μΈμ€λ₯Ό μμ ν λ³Ό μ μλλ‘ ν©λλ€. PhotoRepository
λ db μ°κ²°μ κΈ°λ€λ¦¬κ³ μμΌλ©°, PhotoService
λ μ μ₯μλ₯Ό μ¬μ©ν μ€λΉκ° λ λκΉμ§ μ§μ°λ©λλ€. κ° ν΄λμ€κ° μΈμ€ν΄μ€νλλ©΄ μ 체 μμ© νλ‘κ·Έλ¨μ μμν μ μμ΅λλ€.
λ§μ§λ§ PhotoModule
μ λ€μκ³Ό κ°μ΅λλ€.
warning ννΈ
PhotoModule
μ 루νΈApplicationModule
λ‘ κ°μ Έ μ€λ κ²μ μμ§ λ§μμμ€.
Last updated
Was this helpful?