03.06.2023
1145
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 🙂
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.
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();
}
}
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