Daha önceki yazımda da bahsettiğim statik modüllerin, import ve export edilerek ilişkilendirilmesine "Static Module Binding" (Statik Modül Bağlaması) deniyor. Statik bir modül import edildiğinde, olduğu gibi kullanılabiliyor olmakla birlikte, import edilen modülün yapılandırmasına etki etmek mümkün olmuyor. Ancak genel amaçlı bir modül geliştirdiğinizde ve bu modülün farklı yerlerde import edildiğinde farklı davranışlar sergilemesi gerekebiliyor. Nest'in Configuration modülünü ele alalım. Ortam değişkenlerini saklamak için kullandığımız .env dosyası tüm projelerimizde aynı yerdeyse statik bir Configuration modülü yeterli olacaktır. Ancak dosya farklı projelerde farklı yollarda yer alıyorsa bu dosya yolunu Configuration modülünü import ederken parametre olarak geçme ihtiyacı doğar. İşte dinamik modüller burada devreye giriyor.
Aşağıda ConfigModule modülünün, AppModule'e nasıl import edildiğini görebilirsiniz:
import { Module } from '@nestjs/common'; import { AppController } from './app.controller'; import { AppService } from './app.service'; import { ConfigModule } from './config/config.module'; @Module({ imports: [ConfigModule.register({ folder: './config' })], controllers: [AppController], providers: [AppService], }) export class AppModule {}