Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

384
Vistas
Nestjs ¿Cuál es el orden correcto para @Body(), @Params(), @Req(), @Res()

Quiero acceder al objeto res para enviar cookies httpOnly y necesito validar el cuerpo con DTO. pero cada vez que trato de hacerlo, algo sale mal, ¿cuál es el orden correcto para estos parámetros?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

No hay un orden estricto que deba seguirse. Cada método de controlador puede usar decoradores para recuperar cosas diferentes (consulte los documentos del controlador: https://docs.nestjs.com/controllers )

Ejemplo

Imaginemos que está creando un punto final para manejar algún tipo de búsqueda mediante una solicitud POST y una carga útil. Nest devuelve algunos resultados y establece cookies con la marca de tiempo de la última búsqueda realizada.

Eso suena como sus requisitos, ¿verdad?

Agregar analizador de cookies a la aplicación anidar

Asegúrese de seguir la documentación de cookies e instalar todas las dependencias juntas y configurar el middleware del analizador de cookies: https://docs.nestjs.com/techniques/cookies

Buscar objeto de transferencia de datos de carga útil (DTO)

 import { IsInt, IsNotEmpty } from 'class-validator'; export class SearchBodyDto { @IsNotEmpty() searchPhrase: string; @IsInt() page = 1; }

Método del controlador

 import { Request, Response } from 'express'; import { Body, Controller, Post, Req, Res } from '@nestjs/common'; @Controller() export class AppController { @Post('/search') async search( @Body() body: SearchBodyDto, @Req() req: Request, // passthrough:true here leaves response handling to framework. // Otherwise you would need to send response manually, like: `res.json({data})` @Res({ passthrough: true }) res: Response, ) { const currentTimestamp = new Date().toISOString(); // Save to cookies current timestamp of search. res.cookie('lastSearch', currentTimestamp, { httpOnly: true }); return { // Return last search timestamp and fallback to current timestamp. lastSearch: req.cookies.lastSearch ?? currentTimestamp, // Validated search phrase from DTO. searchPhrase: body.searchPhrase, // Page by default 1. page: body.page, // Some example search results. searchResults: ['water', 'wind', 'earth'], }; } }

Resultado

Ahora, cuando realice una solicitud al punto final, verá el último tiempo de búsqueda en una respuesta: ejemplo de cartero , y también ese valor se establecerá en la cookie 'lastSearch'.

La carga útil aún se validará mediante decoradores en DTO.

about 4 years ago · Juan Pablo Isaza Denunciar

0

No hay orden.

Además, son fábricas de decoradores de parámetros , no parámetros.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda