В NestJS специальный канал — это механизм, позволяющий преобразовывать и проверять входящие данные до того, как они достигнут метода-обработчика в вашем приложении. Пользовательские каналы полезны для применения пользовательских преобразований или проверок к полезным данным запроса.
Вот несколько методов, которые вы можете использовать для создания пользовательских каналов в NestJS:
-
Каналы на основе классов. Вы можете создать собственный канал, определив класс, реализующий интерфейс
PipeTransformиз пакета@nestjs/common.. Этот интерфейс требует реализации методаtransform, который выполняет желаемое преобразование или проверку входящих данных. -
Декораторы параметров: NestJS предоставляет декораторы параметров, которые позволяют применять каналы непосредственно к определенным параметрам метода-обработчика. Например, вы можете использовать декоратор
@Query(), чтобы применить канал к параметру запроса, или декоратор@Body(), чтобы применить канал к телу запроса. -
Встроенные каналы: NestJS предоставляет несколько встроенных каналов, которые можно использовать «из коробки», например
ParseIntPipe,ValidationPipeи. >ParseBoolPipe. Эти каналы выполняют за вас общие преобразования и проверки, избавляя вас от необходимости писать собственную логику. -
Создание каналов многократного использования. Вы можете создавать каналы многократного использования, используя метод
createParamDecorator()пакета@nestjs/common. Этот метод позволяет определить собственный декоратор, инкапсулирующий определенную логику канала, что позволяет легко применять один и тот же канал к нескольким конечным точкам.
Используя собственные каналы в NestJS, вы можете обеспечить согласованность данных, выполнять преобразования данных и применять проверки для обеспечения целостности входящих данных вашего приложения.