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

@SetMetadata() și Clasa Reflector în NestJS în NestJS

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

Atașarea de metadate personalizate pe clase și metode de rute și citirea lor reflexivă în Guards și Interceptors cu Reflector.

Sintaxă
SetMetadata('roles', ['admin']) / reflector.get<string[]>('roles', context.getHandler())

Pentru a implementa reguli de autorizare avansate (cum ar fi roluri necesare, permisiuni sau rate limits specifice), trebuie să poți asocia metadate declarative pe endpoint-uri. Decoratorul @SetMetadata(key, value) realizează această asociere.

În interiorul unui Guard sau Interceptor, clasa injectabilă Reflector accesează aceste metadate atât la nivel de metodă individuală (handler), cât și la nivel de clasă de controller.

Exemplu: Crearea unui decorator custom @Roles() cu Reflector
import { SetMetadata, CustomDecorator } from '@nestjs/common';

export const ROLES_KEY = 'roles';
export const Roles = (...roles: string[]): CustomDecorator => SetMetadata(ROLES_KEY, roles);

// Utilizare pe controller:
// @Roles('admin', 'manager')
// @Get('reports')

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: @SetMetadata() și Clasa Reflector în NestJS

Ai o nelămurire despre utilizarea comenzii @SetMetadata() și Clasa Reflector î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.