es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo validar los parámetros de consulta en NestJS

Yo tengo una aplicación de tienda con NestJS y necesito validar el ID de Mongo, que se pasa por consulta. El problema es que también paso y busco la consulta. Escribí una tubería que valida todos los valores y excluye esta búsqueda de consulta.

Pero este código no es reutilizable para otros casos. Quiero obtener algunos ejemplos de cómo puedo hacer esto.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Si desea hacer que el Pipe ValidationObjectId sea más reutilizable, puede modificarlo para aceptar un parámetro adicional que especifique las claves excluidas. Por ejemplo:

    @Pipe()
    export class ValidationObjectId implements PipeTransform {
    
        transform(value: ObjectId, metadata: ArgumentMetadata, excludedKeys?: string[]) {
    
            if (!Types.ObjectId.isValid(value) && !excludedKeys.includes(metadata.data)) {
                throw new BadRequestException(`Invalid ${metadata.type}: ${value}`);
            }
    
            return value;
    
        }
    }
    

    Con esta modificación, puede especificar qué claves excluir de la validación al pasar un arreglo de cadenas al pipe. Por ejemplo, si desea excluir las claves “searchString” y “sortBy”, puede usar el pipe de esta manera:

    @Get()
    async getItems(@Query(new ValidationObjectIdPipe(['searchString', 'sortBy'])) query: any) {
        // ...
    }
    

    De esta manera, puede usar el mismo pipe para casos diferentes y especificar las claves excluidas según sus necesidades.

Comments are closed.