Pipe

NestJS 🟡 Mid

Définition

Classe implémentant PipeTransform qui valide ou transforme les données entrantes avant qu'elles atteignent le handler. Fonctionne avec class-validator.

Analogie

Comme un filtre a eau : l'eau (données) passe a travers et seule l'eau propre (valide) continue.

Exemple de code

@Injectable()
export class ParseIntPipe implements PipeTransform {
  transform(value: string): number {
    const val = parseInt(value, 10);
    if (isNaN(val)) throw new BadRequestException('Not a number');
    return val;
  }
}

Cas d'usage

Valider les DTOs entrants avec class-validator ou transformer les paramètrès de route.

Anti-pattern

Valider manuellement les données dans le controller au lieu d'utiliser ValidationPipe avec des DTOs.
#core#interview

En entretien

  1. Explique-moi ce qu'est un Pipe dans NestJS.

    C'est une classe implémentant PipeTransform qui valide ou transforme les données entrantes avant qu'elles atteignent le handler, souvent combinée avec class-validator. On l'utilise pour valider les DTOs entrants ou transformer les paramètres de route.

  2. Quel anti-pattern voit-on souvent dans les controllers ?

    Valider manuellement les données dans le controller au lieu d'utiliser ValidationPipe avec des DTOs, ce qui duplique la logique de validation partout. Un Pipe centralisé, comme un filtre à eau, ne laisse passer que les données valides.

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre