Decoratoarele @Req() și @Res() în NestJS în NestJS

http NestJS 10.x / Express / Fastify Q&A / Distribuie cod

Accesarea obiectelor native de cerere și răspuns ale platformei subiacente (Express / Fastify) cu opțiunea passthrough: true.

Sintaxă
@Req() req: Request / @Res({ passthrough: true }) res: Response

Deși NestJS promovează o arhitectură agnostic de platformă, există situații când ai nevoie de acces direct la obiectele native @Req() (Request) și @Res() (Response) oferite de Express sau Fastify (cum ar fi setarea manuală de cookie-uri semnate sau streaming direct).

Atenție la modul de utilizare: Când injectezi @Res(), NestJS trece automat controllerul în modul manual (unde ești responsabil să apelezi res.send() sau res.json()). Pentru a menține serializarea automată NestJS, folosește întotdeauna @Res({ passthrough: true })!

Exemplu: Setare cookie securizat cu @Res({ passthrough: true })
import { Controller, Post, Res } from '@nestjs/common';
import { Response } from 'express';

@Controller('auth')
export class AuthController {
  @Post('login-cookie')
  login(@Res({ passthrough: true }) res: Response) {
    res.cookie('auth_token', 'secret_jwt_xyz', {
      httpOnly: true,
      secure: true,
      sameSite: 'strict',
      maxAge: 3600000,
    });

    // NestJS serializează automat valoarea returnată datorită passthrough: true
    return { status: 'autentificat', user: 'dexter' };
  }
}

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Decoratoarele @Req() și @Res() în NestJS

Ai o nelămurire despre utilizarea comenzii Decoratoarele @Req() și @Res() în NestJS sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.