NestJS · Modules · Mid-Level · Concept
Dynamic modules (forRoot/forRootAsync) — why?
Short Interview Answer
Configure providers at runtime (e.g., connection options) while keeping a clean static API for consumers.
Detailed Explanation
forRootAsync injects ConfigService. Return DynamicModule with module/providers/exports. Essential for libraries.
Example
TypeOrmModule.forRootAsync({ useFactory: (cfg) => ({...}), inject: [ConfigService] })