@Ip(), @Session() și @HostParam() în NestJS în NestJS

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

Extragerea directă și curată a adresei IP a clientului, a obiectului de sesiune și a subdomeniilor dinamice fără obiectul request.

Sintaxă
@Ip() ip: string / @Session() session / @HostParam('account') account

Pentru a evita scrierea repetitivă de cod de tipul req.ip sau req.session, NestJS oferă decoratoare dedicate gata integrate în pachetul standard:

  • @Ip(): Extrage automat adresa IP a clientului apelant (respectând configurarea trust proxy dacă aplicația rulează în spatele unui Reverse Proxy Nginx sau AWS ALB).
  • @Session(): Prelucrează obiectul de sesiune gestionat de express-session.
  • @HostParam('subdomain'): Extrage segmentele dinamice din numele de gazdă atunci când controllerul este configurat pentru routing pe bază de subdomeniu (multi-tenancy).
Exemplu: Logging adresă IP și routing pe bază de subdomeniu
import { Controller, Get, Ip, HostParam } from '@nestjs/common';

@Controller({ host: ':tenant.dexblog.ro' })
export class TenantController {
  @Get('info')
  getTenantInfo(
    @HostParam('tenant') tenant: string,
    @Ip() clientIp: string,
  ) {
    return {
      tenantSubdomain: tenant,
      accessedFromIp: clientIp,
      timestamp: new Date().toISOString(),
    };
  }
}

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: @Ip(), @Session() și @HostParam() în NestJS

Ai o nelămurire despre utilizarea comenzii @Ip(), @Session() și @HostParam() î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.