Custom providers
Custom providers
컨νΈλ‘€ 컨ν μ΄λμ Nest λ°μ μ 무μΈκ°λ₯Ό μ§μ λ°μΈλ©νλ €λ κ²½μ°κ° λ§μ΄ μμ΅λλ€. μλ₯Ό λ€μ΄, μμ κ°, νμ¬ νκ²½μ κΈ°λ°μΌλ‘ μμ±λ κ΅¬μ± μ€λΈμ νΈ, μΈλΆ λΌμ΄λΈλ¬λ¦¬ λλ μ μλ λ€λ₯Έ μ 곡μμ κ±°μ μμ‘΄νμ§ μλ μ¬μ κ³μ°λ κ°. λν κΈ°λ³Έ ꡬνμ μ¬μ μν μ μμ΅λλ€. μ: νμν λ λ€λ₯Έ ν΄λμ€λ₯Ό μ¬μ©νκ±°λ λ€μν ν μ€νΈ 볡μ (ν μ€νΈ λͺ©μ μΌλ‘)μ μ¬μ©νμμμ€.
Nestκ° νμ λͺ
μ¬ν΄μΌ ν ν κ°μ§λ Nestκ° ν ν°μ μ¬μ©νμ¬ μ’
μμ±μ μλ³νλ€λ κ²μ
λλ€. μΌλ°μ μΌλ‘ μλ μμ±λ ν ν°μ ν΄λμ€μ κ°μ΅λλ€. μ¬μ©μ μ§μ 곡κΈμλ₯Ό λ§λ€λ €λ©΄ ν ν°μ μ νν΄μΌ ν©λλ€. λλΆλΆμ μ¬μ©μ μ μ ν ν°μ μΌλ° λ¬Έμμ΄ λλ κΈ°νΈλ‘ νμλ©λλ€. λͺ¨λ² μ¬λ‘λ₯Ό λ°λ₯΄λ©΄, ν΄λΉ ν ν°μ λΆλ¦¬λ νμΌ (μ: constants.ts
)μ 보κ΄ν΄μΌ ν©λλ€.
μ¬μ© κ°λ₯ν μ΅μ μ μ΄ν΄ λ³΄κ² μ΅λλ€.
Use value
useValue
ꡬ문μ μμ κ°μ μ μνκ±°λ μΈλΆ λΌμ΄λΈλ¬λ¦¬λ₯Ό Nest 컨ν
μ΄λμ λ£κ±°λ μ€μ ꡬνμ λͺ¨μ κ°μ²΄λ‘ λ체 ν λ μ μ©ν©λλ€.
컀μ€ν
νλ‘ λ°μ΄λλ₯Ό μ£Όμ
νκΈ° μν΄ @Inject()
λ°μ½λ μ΄ν°λ₯Ό μ¬μ©ν©λλ€. μ΄ λ°μ½λ μ΄ν°λ ν ν°μ΄λΌλ λ¨μΌ μΈμλ₯Ό μ·¨ν©λλ€.
info ννΈ
@Inject()
λ°μ½λ μ΄ν°λ@nestjs/common
ν¨ν€μ§μμ κ°μ Έμ΅λλ€.
κΈ°λ³Έ μ 곡 μ
체μ κ°μ μ¬μ μ νλ €λ κ²½μ° ν
μ€νΈ λͺ©μ μΌλ‘ Nestκ° λͺ¨μ CatsService
λ₯Ό μ¬μ©νλλ‘ κ°μνκ³ μΆμ λ κΈ°μ‘΄ ν΄λμ€λ₯Ό ν ν°μΌλ‘ μ¬μ©νλ©΄ λ©λλ€.
μμ μμμ CatsService
λ μ λ¬ λ mockCatsService
λͺ¨μ κ°μ²΄λ‘ μ¬μ μλ©λλ€. μ¦, CatsService
μΈμ€ν΄μ€λ₯Ό μλμΌλ‘ μμ±νλ λμ Nestκ°μ΄ 곡κΈμλ₯Ό μ΄λ―Έ ν΄κ²°λ κ²μΌλ‘ κ°μ£Όνκ³ mockCatsService
λ₯Ό λν κ°μΌλ‘ μ¬μ©ν©λλ€.
Use class
useClass
ꡬ문μ μ¬μ©νλ©΄ μ νν μμλ§λ€ λ€λ₯Έ ν΄λμ€λ₯Ό μ¬μ©ν μ μμ΅λλ€. μλ₯Ό λ€μ΄, μΆμ (λλ κΈ°λ³Έ) ConfigService
ν΄λμ€κ° μμ΅λλ€. νμ¬ νκ²½μ λ°λΌ Nestλ λ€λ₯Έ κ΅¬μ± μλΉμ€ ꡬνμ μ¬μ©ν΄μΌ ν©λλ€.
warning μλ¦Ό 컀μ€ν ν ν° λμ
ConfigService
ν΄λμ€λ₯Ό μ¬μ©νμΌλ―λ‘ κΈ°λ³Έ ꡬνμ μ¬μ μνμ΅λλ€.
μ΄ κ²½μ° ν΄λμ€κ° ConfigService
μ μ’
μλμ΄ μλλΌλ Nestλ μ 곡λ ν΄λμ€ (DevelopmentConfigService
λλ ProductionConfigService
)μ μΈμ€ν΄μ€λ₯Ό λμ μ£Όμ
ν©λλ€.
Use factory
useFactory
λ μ 곡μλ₯Ό λμ μΌλ‘ λ§λλ λ°©λ²μ
λλ€. μ€μ 곡κΈμλ ν©ν 리 ν¨μμ λ°ν κ°κ³Ό κ°μ΅λλ€. ν©ν 리 κΈ°λ₯μ μ¬λ¬ λ€λ₯Έ μ 곡μμ μμ‘΄νκ±°λ μμ ν λ
립λ μνλ₯Ό μ μ§ν μ μμ΅λλ€. μ΄λ ν©ν λ¦¬κ° μΈμλ₯Ό νμ©ν μ μμμ μλ―Ένλ©°, μΈμ€ν΄μ€ν νλ‘μΈμ€ μ€μ Nestκ° λΆμνμ¬ μ λ¬ν©λλ€. λν μ΄ ν¨μλ λΉλκΈ° μ μΌλ‘ κ°μ λ°νν μ μμ΅λλ€. μ¬κΈ°μ λ μμΈν μ€λͺ
λμ΄ μμ΅λλ€. 곡κΈμλ₯Ό λμ μΌλ‘ κ³μ°ν΄μΌ νκ±°λ λΉλκΈ° μμ
μ ν΄κ²°νλ €λ κ²½μ°μ μ¬μ©νμμμ€.
info ννΈ ν©ν 리μ λ€λ₯Έ μ 곡μκ° νμν κ²½μ°,
inject
λ°°μ΄ μμ ν ν°μ μ λ¬ν΄μΌ ν©λλ€. Nestλ μΈμ€ν΄μ€λ₯Ό λμΌν μμλ‘ ν¨μμ μΈμλ‘ μ λ¬ν©λλ€.
Use existing
useExisting
μ μ¬μ©νλ©΄ κΈ°μ‘΄ 곡κΈμμ λ³μΉμ λ§λ€ μ μμ΅λλ€. μλ₯Ό λ€μ΄, AliasedLoggerService
ν ν°μ LoggerService
μ λ³λͺ
μ
λλ€.
info ννΈ
LoggerService
μΈμ€ν΄μ€λAliasedLoggerService
ν ν°μ μν΄ μ μλ μΈμ€ν΄μ€μ λμΌν©λλ€.
Export custom provider
μ¬μ©μ μ§μ 곡κΈμλ₯Ό λ΄λ³΄λ΄λ €λ©΄ ν ν° λλ μ 체 κ°μ²΄λ₯Ό μ¬μ©ν μ μμ΅λλ€. λ€μ μμ λ ν ν° μΌμ΄μ€λ₯Ό 보μ¬μ€λλ€.
κ·Έλ¬λ μ 체 κ°μ²΄λ₯Ό μ¬μ©ν μλ μμ΅λλ€.
Last updated
Was this helpful?