Injection Scopes
NestJS 🔴 SeniorDefinition
Definit le cycle de vie d'un provider : DEFAULT (singleton), REQUEST (par requete) ou TRANSIENT (nouvelle instance a chaque injection).
Analogie
Comme un bureau : partage (singleton), un par client (request) ou jetable apres chaque usage (transient).
Exemple de code
@Injectable({ scope: Scope.REQUEST })
export class RequestLogger {
private requestId = randomUUID();
log(msg: string) {
console.log(`[${this.requestId}] ${msg}`);
}
}
Cas d'usage
Utiliser REQUEST scope pour des services qui doivent stocker des donnees specifiques a chaque requete.
Anti-pattern
Utiliser REQUEST scope partout, ce qui desactive le singleton et degrade les performances.