Nou Generator de prompt AI — scrie prompturi mai bune pentru ChatGPT, Claude și Gemini →

Decoratoare Personalizate de Parametri cu createParamDecorator în NestJS

security NestJS 10.x / TypeScript 5+ Q&A / Distribuie cod

Crearea de decoratoare proprii de parametri pentru extragerea directă și curată a utilizatorului curent din Request.

Sintaxă
export const CurrentUser = createParamDecorator((data, ctx) => ...)

În loc să injectezi @Req() req în fiecare metodă pentru a scrie req.user, NestJS oferă funcția createParamDecorator().

Aceasta permite crearea unor decoratoare elegante precum @CurrentUser() sau @CurrentTenant(), care extrag direct proprietatea dorită din contextul de execuție, îmbunătățind considerabil lizibilitatea și facilitând testarea unitară.

Exemplu: Decorator @CurrentUser() cu suport pentru selecție atribut
import { createParamDecorator, ExecutionContext } from '@nestjs/common';

export const CurrentUser = createParamDecorator(
  (data: string | undefined, ctx: ExecutionContext) => {
    const request = ctx.switchToHttp().getRequest();
    const user = request.user;

    return data ? user?.[data] : user;
  },
);

// Utilizare în controller:
// @Get('profile')
// getProfile(@CurrentUser() user: UserDto, @CurrentUser('email') email: string)

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Decoratoare Personalizate de Parametri cu createParamDecorator

Ai o nelămurire despre utilizarea comenzii Decoratoare Personalizate de Parametri cu createParamDecorator 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.