【Nest教程】数据验证class-validator

简介: 【Nest教程】数据验证class-validator

说白一点,就是一个接口,必定有必填字段和字段的要求,如果前台调用这个接口,字段不符合,应正确提示不符合的字段,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方式请求访问地址。

image.png

相关文章
|
机器学习/深度学习 JSON 前端开发
RESTful API接口设计规范
近年来移动互联网的发展,前端设备层出不穷(手机、平板、桌面电脑、其他专用设备…),因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信,于是RESTful诞生了,它可以通过一套统一的接口为 Web,iOS和Android提供服务。
4022 1
RESTful API接口设计规范
|
JavaScript
在vue3中使用markdown编辑器
在vue3中使用markdown编辑器
在vue3中使用markdown编辑器
|
8月前
|
数据采集 数据挖掘 API
深入探究小红书笔记详情页面数据采集接口
小红书作为当下热门的内容分享平台,涵盖时尚、美妆、旅游等领域,其笔记详情页数据对品牌方和市场研究者具有重要意义。通过数据采集接口,可获取标题、评论、点赞等信息,用于竞品分析、内容营销效果评估及趋势预测。例如,企业可通过分析用户兴趣优化产品策略,研究新兴消费趋势指导市场推广。文中还提供了Python请求示例,帮助开发者快速上手使用API接口。
|
9月前
|
安全 Linux 开发工具
零基础构建开源项目OpenIM桌面应用和pc web- Electron篇
OpenIM 为开发者提供开源即时通讯 SDK,作为 Twilio、Sendbird 等云服务的替代方案。借助 OpenIM,开发者可以构建安全可靠的即时通讯应用,如 WeChat、Zoom、Slack 等。 本仓库基于开源版 OpenIM SDK 开发,提供了一款基于 Electron 的即时通讯应用。您可以使用此应用程序作为 OpenIM SDK 的参考实现。本项目同时引用了 @openim/electron-client-sdk 和 @openim/wasm-client-sdk,分别为 Electron 版本和 Web 版本的 SDK,可以同时构建 PC Web 程序和桌面应用(Wi
658 2
|
JavaScript 前端开发 UED
Vue与uni-app开发中通过@font-face巧妙引入自定义字体
Vue与uni-app开发中通过@font-face巧妙引入自定义字体
859 9
|
JavaScript API
NodeJs——使用axios下载上传文件
NodeJs——使用axios下载上传文件
385 4
|
前端开发
|
数据采集 存储 数据安全/隐私保护
CDGA|数据治理:自上而下与自下而上的双重策略
数据治理是一个复杂而长期的过程,需要企业从多个方面入手进行综合治理。自上而下和自下而上的双重策略可以相互补充、相互促进,共同推动企业数据治理工作的深入开展。在实践中,企业需要根据自身实际情况选择合适的策略和方法,确保数据治理工作的有效性和可持续性。
vant-函数式组件用法
vant-函数式组件用法
257 0