Nestjs管道


一、关于Nestjs中的管道

文档: https://docs.nestjs.com/pipes

通俗的讲:Nestjs中的管道可以将输入数据转换为所需的输出。此外,它也可以处理验证,当数据不正确时可能会抛出异常。


二、Nestjs中创建和使用管道

1、创建管道

nest g pipe user

管道创建完成后生成如下代码:

import { ArgumentMetadata, Injectable, PipeTransform } from '@nestjs/common';
@Injectable()
export class UserPipe implements PipeTransform {
	transform(value: any, metadata: ArgumentMetadata) {
//这个里面可以修改传入的值以及验证转入值的合法性
	return value;
	}
}

2、使用管道

import { Controller,Get,UsePipes,Query} from '@nestjs/common';
import {UserPipe} from '../../user.pipe';
@Controller('user')
export class UserController {    
	@Get()
	index(){
		return '用户页面';
	}
	@Get('pipe')
	@UsePipes(new UserPipe())
	pipe(@Query() info){
		console.log(info);
		return `this is Pipe`;
	}
}