Pipe-uri Personalizate (PipeTransform) în NestJS în NestJS

pipeline NestJS 10.x / TypeScript 5+ Q&A / Distribuie cod

Construirea de pipe-uri proprii de transformare și validare: curățarea conținutului periculos (XSS) sau maparea identificatorilor.

Sintaxă
@Injectable() export class CustomPipe implements PipeTransform { transform(value, metadata) { ... } }

Dacă regulile de validare necesită logică de business specifică sau sanitizări speciale care nu sunt acoperite de decoratoarele standard, poți crea un Custom Pipe prin implementarea interfeței PipeTransform.

Metoda transform(value, metadata: ArgumentMetadata) primește valoarea brută transmisă de utilizator și returnează valoarea transformată sau aruncă o excepție BadRequestException dacă datele sunt invalide.

Exemplu: Pipe personalizat pentru eliminarea caracterelor periculoase
import { PipeTransform, Injectable, ArgumentMetadata, BadRequestException } from '@nestjs/common';

@Injectable()
export class TrimStringPipe implements PipeTransform {
  transform(value: any, metadata: ArgumentMetadata) {
    if (typeof value === 'string') {
      return value.trim();
    }
    if (typeof value === 'object' && value !== null) {
      Object.keys(value).forEach((key) => {
        if (typeof value[key] === 'string') {
          value[key] = value[key].trim();
        }
      });
    }
    return value;
  }
}

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Pipe-uri Personalizate (PipeTransform) în NestJS

Ai o nelămurire despre utilizarea comenzii Pipe-uri Personalizate (PipeTransform) în NestJS sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.