通过前面几章节,我们项目的基础已经出来了,增加自定义过滤器和拦截器,连接MySQL,但是只能说是基础,因为很多功能我们都没有实现,今天实现的功能是对前台传入的字段进行验证。

说白一点,就是一个接口,必定有必填字段和字段的要求,如果前台调用这个接口,字段不符合,应正确提示不符合的字段,class-validator 用于入的数据验证。

1 项目安装

yarn add class-validator

2 全局验证通道

对比前面的教程,可以看出这个问文件,只添加两行代码,一行是导入ValidationPipe ,另一行是开启一个全局验证通道

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-validator

为了项目统一管理,我们在之前的User模块下,新建Dto文件夹,这里面放置我们的文件,新建一个用户查询的Dto,文件内容如下:

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查看。

4 效果

运行项目,post方式请求访问地址。

©著作权归作者所有:来自51CTO博客作者mb5fd86dae5fbf6的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. Newtonsoft 六个超简单又实用的特性,值得一试 【下篇】
  2. 六个超简单又实用的特性,值得一试 【上篇】
  3. 配置文件中的数据库连接串加密了,你以为我就挖不出来吗?
  4. 快醒醒,C# 9 中又来了一堆关键词 init,record,with
  5. python入门教程13-04 (语法入门之记录相关操作)
  6. ALV显示红绿灯(FM ALV 和 OO ALV两种实现方式)
  7. FM实现F4帮助系列一:常规实现
  8. 小心BDC录屏带有行项目输入的坑
  9. FM实现F4帮助系列四:弹出框多筛选条件的搜索帮助(自定义筛选字段)

随机推荐

  1. Android 之 SystemService
  2. android - 为安全而设计 - 2 - 开发文档
  3. Android中Context详解
  4. Android下Service入门
  5. 1.4EditText
  6. [转]Android SDK 中的 SDK Manager.exe
  7. android JNI C代码对sdcard中文件的操作
  8. Android: AIDL --- Android中的远程接口
  9. Android的进程,线程模型
  10. Android Activity的4种启动模式详解(示例)