Свой канал в Nest
Строка поиска после пути приходит с пробелами по краям. Метод сравнивает её с эталоном, и лишние символы мешают найти нужную запись.
Свой канал - класс с методом
transform, который реализует
интерфейс PipeTransform.
Метод принимает значение параметра
и возвращает новое. Класс помечают
Injectable, конструктор без
зависимостей не нужен. Канал указывают
у параметра запроса так же, как
встроенный из общих средств.
Покажем на примере поиска постов по строке после пути:
import { Injectable, PipeTransform } from '@nestjs/common';
@Injectable()
export class TrimPipe implements PipeTransform {
transform(value: string): string {
return value.trim();
}
}
Подключим канал к параметру запроса в контроллере постов:
import { Controller, Get, Query } from '@nestjs/common';
import { TrimPipe } from './trim.pipe.js';
@Controller('posts')
export class PostController {
@Get()
search(@Query('q', TrimPipe) q: string): string {
return q;
}
}
Контроллер регистрируем в корневом модуле, чтобы поиск открылся:
import { Module } from '@nestjs/common';
import { PostController } from './post.controller.js';
@Module({
controllers: [PostController],
})
export class AppModule {}
Сделайте поиск работников по строке
после пути с обрезкой пробелов
по краям в контроллере
WorkerController и подключите его
к корневому модулю.