Mongo
Mongo
MongoDB λ°μ΄ν°λ² μ΄μ€λ₯Ό μ²λ¦¬νλ λ°©λ²μλ λ κ°μ§κ° μμ΅λλ€. MongoDBλ₯Ό μ§μνλ ORM λλ κ°μ₯ μΈκΈ°μλ MongoDB μ Mongooseλ₯Ό μ¬μ©ν μ μμ΅λλ€. κ°μ²΄ λͺ¨λΈλ§ λꡬ. ORMμ μ μ§νλ €λ©΄ λ€μ λ¨κ³λ₯Ό μννμμμ€. κ·Έλ μ§ μμΌλ©΄ μ μ© @nestjs/mongoose
ν¨ν€μ§λ₯Ό μ¬μ©ν©λλ€.
λ¨Όμ νμν λͺ¨λ μ’ μμ±μ μ€μΉν΄μΌν©λλ€.
μ€μΉ κ³Όμ μ΄ μλ£λλ©΄ MongooseModule
μ λ£¨νΈ ApplicationModule
λ‘ κ°μ Έμ¬ μ μμ΅λλ€.
forRoot()
λ©μλλ Mongoose ν¨ν€μ§μμ mongoose.connect()
μ λμΌν κ΅¬μ± κ°μ²΄λ₯Ό λ°μ΅λλ€.
Model injection
Mongooseλ₯Ό μ¬μ©νλ©΄ λͺ¨λ κ²μ΄ μ€ν€λ§μμ νμλ©λλ€. CatSchema
λ₯Ό μ μ ν΄ λ΄
μλ€:
CatsSchema
λ cats
λλ ν 리μ μν©λλ€. μ΄ λλ ν 리λ CatsModule
μ λνλ
λλ€. μ€ν€λ§ νμΌμ μ μ§ν μμΉλ κ²°μ μ
λλ€. μ°λ¦¬μ κ΄μ μμ λ³Ό λ κ°μ₯ μ’μ λ°©λ²μ μ μ ν λͺ¨λ λλ ν 리μ κ±°μ λλ©μΈμ μ μ§νλ κ²μ
λλ€.
CatsModule
μ λ΄
μλ€:
μ΄ λͺ¨λμ forFeature()
λ©μλλ₯Ό μ¬μ©νμ¬ νμ¬ λ²μμ λ±λ‘ν λͺ¨λΈμ μ μν©λλ€. λλΆμ @InjectModel()
λ°μ½λ μ΄ν°λ₯Ό μ¬μ©νμ¬ CatModel
μ CatsService
μ μ½μ
ν μ μμ΅λλ€.
Testing
μμ© νλ‘κ·Έλ¨μ λ¨μ ν
μ€νΈνλ κ²½μ° μΌλ°μ μΌλ‘ λ°μ΄ν°λ² μ΄μ€ μ°κ²°μ νΌνμ¬ ν
μ€νΈ μνΈλ₯Ό λ
립μ μΌλ‘ λ§λ€κ³ μ€ν νλ‘μΈμ€λ₯Ό κ°λ₯ν ν 빨리 λ§λλλ€. κ·Έλ¬λ ν΄λμ€λ μ°κ²° μΈμ€ν΄μ€μμ κ°μ Έμ¨ λͺ¨λΈμ λ°λΌ λ¬λΌμ§ μ μμ΅λλ€. κ·ΈλΌ λκ°μ? ν΄κ²°μ±
μ κ°μ§ λͺ¨λΈμ λ§λλ κ²μ
λλ€. μ΄λ₯Ό λ¬μ±νκΈ° μν΄ custom providerλ₯Ό μ€μ ν΄μΌ ν©λλ€. μ€μ λ‘, λ±λ‘λ κ° λͺ¨λΈμ NameModel
ν ν°μΌλ‘ νμλλ©° μ¬κΈ°μ Name
μ λͺ¨λΈμ μ΄λ¦μ
λλ€.
@nestjs/mongoose
ν¨ν€μ§λ μ£Όμ΄μ§ λͺ¨λΈ μ΄λ¦μ κΈ°λ°μΌλ‘ μ€λΉλ ν ν°μ λ°ννλ getModelToken()
ν¨μλ₯Ό μ 곡ν©λλ€.
μ΄μ νλ μ½λ λ catModel
μ΄ Model<Cat>
λ‘ μ¬μ©λ©λλ€. 곡κΈμκ° @InjectModel()
λ°μ½λ μ΄ν°λ₯Ό μ¬μ©νμ¬Model<Cat>
λ₯Ό μμ²ν λλ§λ€ Nestλ λ±λ‘ λ catModel
κ°μ²΄λ₯Ό μ¬μ©ν©λλ€.
Async configuration
λͺ¨λ μ΅μ
μ 미리 μ λ¬νλ λμ λΉλκΈ°μμΌλ‘ μ λ¬νλ €λ κ²½μ°κ° μ’
μ’
μμ΅λλ€. μ΄ κ²½μ° λΉλκΈ° λ°μ΄ν°λ₯Ό μ²λ¦¬νλ λͺκ°μ§ λ€μν λ°©λ²μ μ 곡νλ forRootAsync()
λ©μλλ₯Ό μ¬μ©νμμμ€.
κ°λ₯ν 첫 λ²μ§Έ λ°©λ²μ ν©ν 리 κΈ°λ₯μ μ¬μ©νλ κ²μ λλ€.
λΆλͺ
ν, μ°λ¦¬ ν©ν 리λ λ€λ₯Έ λͺ¨λ κ²μ²λΌ νλν©λλ€ ( async
μΌ μλ μκ³ inject
μ ν΅ν΄ μμ‘΄μ±μ μ£Όμ
ν μλ μμ΅λλ€).
λλ ν©ν 리 λμ ν΄λμ€λ₯Ό μ¬μ©ν μ μμ΅λλ€.
μμ ꡬμ±μ MongooseModule
λ΄μμ MongooseConfigService
λ₯Ό μΈμ€ν΄μ€ν νκ³ μ΄λ₯Ό νμ©νμ¬ μ΅μ
κ°μ²΄λ₯Ό λ§λλλ€. MongooseConfigService
λ MongooseOptionsFactory
μΈν°νμ΄μ€λ₯Ό ꡬνν΄μΌ ν©λλ€.
MongooseModule
λ΄μ MongooseConfigService
κ° μμ±λλ κ²μ λ§κ³ λ€λ₯Έ λͺ¨λμμ κ°μ Έμ¨ 곡κΈμλ₯Ό μ¬μ©νκΈ° μν΄ useExisting
λ¬Έλ²μ μ¬μ©ν μ μμ΅λλ€.
νλμ μ€μν μ°¨μ΄μ μ κ°μ§ useClass
μ λμΌνκ² μλν©λλ€. MongooseModule
μ κ°μ Έμ¨ λͺ¨λμ μ‘°ννμ¬ μ΄λ―Έ μμ±λ ConfigService
λ₯Ό μ체μ μΌλ‘ μΈμ€ν΄μ€ννλ λμ μ¬μ¬μ©ν©λλ€.
Example
μ€μ μ¬λ‘λ μ¬κΈ°μμ νμΈν μ μμ΅λλ€.
Last updated
Was this helpful?