NestJS Pipes (Borular)

NestJS Pipes (Borular)

03.06.2023

105

NestJS-də pipe-lar, giriş məlumatlarını tənzimləmək, validasiya etmək və ya transformasiya etmək üçün istifadə edilən funksiyalardır. Bir neçə növ pipe mövcuddur və hər biri müəyyən bir məqsədə xidmət edir. Gəlin birlikdə baxaq 🙂

 

Standart Pipe-lar

 

NestJS, əvvəlcədən təyin edilmiş bir sıra standart pipe təmin edir. Bu pipe-lar müxtəlif məqsədlər üçün istifadə oluna bilər. Məsələn:

 

ValidationPipe: Giriş məlumatını validasiya etmək üçün istifadə olunur.

ParseIntPipe: Giriş məlumatını integer-ə çevirmək üçün istifadə olunur.

ParseBoolPipe: Giriş məlumatını boolean-a çevirmək üçün istifadə olunur.

 

Özəl Pipe-ların Yaradılması

 

Pipe istifadə etmək üçün, ilk öncə `@Injectable()` dekoratoru ilə bir pipe sinifi yaratmalı və `PipeTransform` interfeysini implement etməlisiniz. Daha sonra, `transform` metodunda istədiyiniz tənzimləməni yerinə yetirməlisiniz.

 

Typescript

 

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

 

@Injectable()

export class CustomPipe implements PipeTransform {

  transform(value: any, metadata: ArgumentMetadata) {

    // Burada giriş məlumatını tənzimləyin və ya transformasiya edin

    // Nümunə üçün:

    return value.toUpperCase();

  }

}

 

Pipe Tətbiqi 

 

Daha sonra, bu pipe-ı istifadə etmək üçün hədəf klasın üzərində `@UsePipes()` və ya `@UsePipe()` dekoratorunu istifadə edərək göstərə bilərsiniz.

 

Typescript

 

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

import { CustomPipe } from './custom.pipe';

 

@Controller('example')

export class ExampleController {

  @Get(':param')

  @UsePipes(new CustomPipe())

  getExample(@Param('param') param: string) {

    // Burada tənzimlənmiş və ya transform edilmiş məlumatları əldə edin

    return { data: param };

  }

}

 

Bu nümunədə, `CustomPipe` adlı pipe, giriş məlumatını böyük hərflərlə tənzimləyir. Həmçinin diqqət yetirilməsi lazımdır ki, `@UsePipes()` tətbiq olunma sırasına əsasən çalışır, bu səbəbdə də əgər birdən çox pipe istifadə etmək istəyirsinizsə, sıra önəmlidir. NestJS pipe-ları tərəfindən təmin edilən standart pipe-ların yanı sıra, özəl pipe-lar yaratmağınız da mümkündür və bu, proqramınızın tənzimlənməsini və təhlükəsizliyini artırmağa kömək edir.

 

Məqalədi hazırladı: Murad Məstəliyev

Təsdiqlədi: Əlinemət İsiyev