Lifecycle Hooks
NestJS 🟡 MidDefinition
Interfaces (OnModuleInit, OnModuleDestroy, OnApplicationBootstrap, OnApplicationShutdown) qui permettent d'executer du code a des moments cles du cycle de vie.
Analogie
Comme les etapes d'ouverture et fermeture d'un magasin : mise en place le matin, rangement le soir.
Exemple de code
@Injectable()
export class DbService implements OnModuleInit, OnModuleDestroy {
async onModuleInit() {
await this.connect();
}
async onModuleDestroy() {
await this.disconnect();
}
}
Cas d'usage
Initialiser des connexions base de donnees au demarrage et les fermer proprement a l'arret.
Anti-pattern
Initialiser des ressources dans le constructeur au lieu de onModuleInit, bloquant la DI.