Dekoratory NestJS

Dekoratory to specjalne funkcje, które są używane do modyfikowania innych elementów programu, takich jak klasy, metody lub właściwości. W NestJS, dekoratory są używane do konfigurowania różnych aspektów aplikacji, takich jak kontrolery, serwisy i nie tylko.

Jednym z przykładów użycia dekoratorów w NestJS jest oznaczanie klasy jako kontrolera. Można to zrobić za pomocą dekoratora @Controller:

import { Controller } from '@nestjs/common';

@Controller('users')
export class UsersController {
  // metody kontrolera
}

Można również użyć dekoratorów do oznaczenia metod kontrolera jako odpowiedzi na żądania HTTP. Na przykład, dekorator @Get służy do oznaczenia metody jako odpowiedzi na żądanie typu GET:

import { Get, Controller } from '@nestjs/common';

@Controller('users')
export class UsersController {
  @Get()
  getAllUsers() {
    // kod obsługujący żądanie GET
  }
}

Jak łączyć dekoratory w Nest.JS?

Możesz również łączyć dekoratory, aby uzyskać bardziej złożone funkcjonalności. Na przykład, jeśli chcesz oznaczyć metodę jako odpowiedzi na żądanie typu GET z określonym parametrem, możesz użyć dekoratora @Param w połączeniu z @Get:

import { Get, Controller, Param } from '@nestjs/common';

@Controller('users')
export class UsersController {
  @Get(':id')
  getUser(@Param('id') id: string) {
    // kod obsługujący żądanie GET z parametrem id
  }
}

Jak stworzyć własne dekoratory w Nest.JS?

Spróbuj też stworzyć własne dekoratory w NestJS. Aby to zrobić, musisz utworzyć funkcję dekoratora i użyć dekoratora @Injectable() do oznaczenia jej jako serwisu, który może być wstrzykiwany przez DI:

import { Injectable, SetMetadata } from '@nestjs/common';

export const Role = (

Przydatne dekoratory w Nest.JS

W NestJS istnieje wiele przydatnych dekoratorów, które można użyć do konfigurowania różnych aspektów aplikacji. Oto kilka przykładów:

@Controller: służy do oznaczania klasy jako kontrolera, który obsługuje żądania HTTP.
@Get, @Post, @Put, @Delete: służą do oznaczania metod kontrolera jako odpowiedzi na odpowiednie żądania HTTP.
@Body: służy do oznaczenia argumentu metody jako ciała żądania HTTP.
@Param: służy do oznaczenia argumentu metody jako parametru żądania HTTP.
@Query: służy do oznaczenia argumentu metody jako parametru zapytania żądania HTTP.
@Header: służy do oznaczenia argumentu metody jako nagłówka żądania HTTP.
@UsePipes: służy do oznaczenia metody lub kontrolera jako punktu, w którym ma zostać użyta rura (ang. pipe). Rury służą do walidacji lub transformacji danych wejściowych lub wyjściowych.
@UseGuards: służy do oznaczenia metody lub kontrolera jako punktu, w którym ma zostać użyty strażnik (ang. guard). Strażnicy służą do sprawdzania uprawnień lub autentykacji przed wykonaniem metody. Oprócz tych dekoratorów, w NestJS istnieje również wiele innych przydatnych dekoratorów, takich jak @Inject, @Injectable, @OnModuleInit itp.

Warto przejrzeć dokumentację NestJS, aby zobaczyć pełną listę dostępnych dekoratorów.

MOŻE SPODOBAĆ CI SIĘ RÓWNIEŻ...

TOP 10 najlepszych software house’ów z Warszawy

Spis treści Lista najlepszych firm wytwarzających oprogramowanie z Warszawy1. Geniusee2. Develtio3. GogoApps4.…

Backbone.js – do czego służy ta biblioteka JavaSript?

Spis treści Co to jest Backbone.js?Jak zacząć korzystać z Backbone.js? Backbone.js to…

CTO w software house – czym się zajmuje i ile zarabia?

Spis treści Czym zajmuje się CTO w firmie wytwarzającej oprogramowanie?Czym powinien się…

Czym jest Pydantic? – przewodnik dla początkujących

Spis treści Python i PydanticJak te klasy zachowują się w kwestii walidacji…