Transformación y Validación de Datos con Pipes en NestJS
Clase 17 de 23 • Curso de Backend con NestJS
Resumen
NestJS utiliza el concepto de PIPES para la validación y transformación de los datos antes del ingreso de estos a un controlador.
Casos de uso de PIPES
Los pipes tienen dos casos de uso típicos:
- Transformación: transforma los datos de entrada a la forma deseada (por ejemplo, de cadena a entero).
- Validación: evalúa los datos de entrada y, si son válidos, simplemente los pasa sin cambios; de lo contrario, lanza una excepción cuando los datos son incorrectos.
Implementando tu primer PIPE
NestJS ya trae consigo una serie de pipes que puedes utilizar para la manipulación de datos. Impórtalos desde @nestjs/common
y úsalos de la siguiente manera.
import { ParseIntPipe } from '@nestjs/common';
@Get('product/:idProduct')
getProduct(@Param('idProduct', ParseIntPipe) idProduct: string): string {
// ...
}
El pipe ParseIntPipe, agrégalo como segundo parámetro del decorador Param
para transformar el parámetro idProduct
y asegurar que este sea un número entero.
De no serlo, arrojará un error y al mismo tiempo estás protegiendo tu aplicación de datos erróneos o maliciosos.
Explora todos los PIPES que NestJS ya tiene preparados para ti.
// src/controllers/products.controller.ts
import {..., ParseIntPipe} from '@nestjs/common';
@Get(':id')
get(@Param('id', ParseIntPipe) id: number) {
return this.productsService.findOne(id);
}
Contribución creada con los aportes de: Kevin Fiorentino y William Abel Condori