• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

315
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?

almost 3 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.

almost 3 years ago · Juan Pablo Isaza Denunciar

0

No hay orden.

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

almost 3 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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda