本文介绍了如何配置自定义的nestjs管道?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我得到了想要在自定义提供程序的方法上使用的最基本的管道。管道如下所示:
@Injectable()
export class DateTransformPipe implements PipeTransform {
transform(value: any, metadata: ArgumentMetadata) {
console.log('Inside the DateTransformPipe pipe...');
return value;
}
}
下面是我想要使用它的类:
@Injectable()
export class MyProvider {
@UsePipes(new DateTransformPipe())
private getDataFor(onDate: Date): string {
console.log(onDate);
return 'Some Stuff'
}
}
管道位于特殊目录src/helpers/pipes
中。这里的问题是根本没有调用管道的转换方法……我似乎找不出原因。
推荐答案
因为管道只在请求的nestjs进程中执行,所以此函数getDataFor
是私有的,所以我猜您是通过MyProvider
中的一些代码执行它的,这不是它的工作方式。
请阅读文档:https://docs.nestjs.com/pipes
但请记住,管道仅在按框架处理请求时执行,而不是针对您可能拥有的每个方法执行,Nest没有这种能力。
因此您可以使用绑定到控制器路径FE方法。
Fe:
@Controller('cats')
class CatController {
@Post()
@UsePipes(new DateTransformPipe())
async create(@Body() createCatDto: CreateCatDto) {
this.catsService.create(createCatDto);
}
}
这篇关于如何配置自定义的nestjs管道?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!