經過前面幾章節,咱們項目的基礎已經出來了,增長自定義過濾器和攔截器,鏈接MySQL,可是隻能說是基礎,由於不少功能咱們都沒有實現,今天實現的功能是對前臺傳入的字段進行驗證。git
說白一點,就是一個接口,一定有必填字段和字段的要求,若是前臺調用這個接口,字段不符合,應正確提示不符合的字段,class-validator 用於入的數據驗證。github
1 項目安裝bootstrap
yarn add class-validator
2 全局驗證通道app
對比前面的教程,能夠看出這個問文件,只添加兩行代碼,一行是導入ValidationPipe ,另外一行是開啓一個全局驗證通道async
import { NestFactory } from '@nestjs/core'; import { ValidationPipe } from '@nestjs/common'; import { AppModule } from './app.module'; import { HttpExceptionFilter } from './filters/http-exception.filter'; import { TransformInterceptor } from './interceptor/transform.interceptor'; async function bootstrap() { const app = await NestFactory.create(AppModule); app.useGlobalFilters(new HttpExceptionFilter()); app.useGlobalInterceptors(new TransformInterceptor()); app.useGlobalPipes(new ValidationPipe()); //開啓一個全局驗證管道 await app.listen(3000); } bootstrap();
3 使用class-validatoride
爲了項目統一管理,咱們在以前的User模塊下,新建Dto文件夾,這裏面放置咱們的文件,新建一個用戶查詢的Dto,文件內容以下:post
import { IsNotEmpty, Length } from 'class-validator'; export class QueryUserDto { @IsNotEmpty({ message: '用戶名不爲空' }) @Length(10, 20, { message: 'name的長度不能小於10不能大於20' }) readonly name: string; @IsNotEmpty({ message: '暱稱不爲空' }) readonly nickname: string; }
class-validator定義不少,咱們這裏只演示IsNotEmpty, Length,若是須要更多的文檔,請https://github.com/typestack/class-validator查看。code
4 效果orm
運行項目,post方式請求訪問地址。
blog