Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1.1K
Views
Cómo validar los parámetros de consulta en nestjs

Yo, tengo una aplicación de tienda con nestjs, necesito validar la identificación de mongo, que es pasar por consulta, el problema es que también paso y busco la consulta. Escribo una tubería que valida todos los valores y excluyo esta consulta de búsqueda

 @Injectable() export class ValidationObjectId implements PipeTransform { transform(value: UniqueId, metadata: ArgumentMetadata) { if ( !Types.ObjectId.isValid(value) && metadata.data !== "searchString" ) { throw new BadRequestException("Неверный параметр запроса"); } return value; } }

Pero este código no es reutilizable para otro caso. Quiero obtener algunos ejemplos, cómo puedo hacer esto

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

El enfoque más limpio y reutilizable probablemente sería hacer uso de ValidationPipe con Query-DTO-Class.

Echa un vistazo al siguiente ejemplo.

https://gitlab.com/WaldemarLehner/nestjs-swagger-example/-/tree/1aea48597ddcf93b0a0d1449fe5087413415bbee

Dentro del controlador , puede pasar una canalización al @Query() -Decorator. Puede usar ValidationPipe que ya viene con Nest y hace uso de los paquetes class-validator y class-transformer .

Puede crear una clase DTO para sus parámetros de consulta como se hizo en PostHelloQuery.dto.ts de mi ejemplo.

 import { IsBoolean, IsOptional } from "class-validator"; class PostHelloQueryDTO { @IsOptional() @IsBoolean() public useExclamation?: boolean; }

Aquí define restricciones para sus datos usando decoradores de class-validator . Para obtener una lista de todos los decoradores, consulte https://github.com/typestack/class-validator#validation-decorators .

Si ninguno de los validadores se ajusta a sus necesidades, también puede crear su propio decorador como se muestra aquí .

En mi ejemplo, useExclamantion -Query Param es un valor booleano opcional. Tenga en cuenta que los parámetros de consulta entrantes se analizan como cadenas.

La conversión se realiza mediante la enableInplicitConversion como se ve en el controlador:

 @Query(new ValidationPipe({ transform: true, transformOptions: {enableImplicitConversion: true}, forbidNonWhitelisted: true }) query: PostHelloQueryDTO

Para obtener más información sobre el uso de ValidationPipe con class-validator , puede consultar la documentación de NestJS:

https://docs.nestjs.com/techniques/validación

Para su caso de uso específico (validación de ID de MongoDB), encontré un problema abierto con una implementación de ejemplo para un @IsMongoDB :

https://github.com/typestack/class-validator/issues/630#issuecomment-645638436

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!