Lifecycle Hooks

NestJS 🟡 Mid

Definition

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.
#core#interview