首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Node.js开发

    class-validator的使用

    在使用nestjs开发应用时,我们一般需要对前端提交的数据进行验证,此时就需要用到class-validator这个库了。 首先看一段实例代码:import { IsInt, Min, Length, validate } from 'class-validator';class Book { @Length(10, errors.length > 0) { console.log('验证失败:', errors); } else { console.log('验证通过'); }});1、首先导入了class-validator 到此为止,我们了解了class-validator的基本使用。但是这里我们产生了一个疑问? 此时我们需要将字面量对象转化为类对象,并且是class-validator中的修饰符修饰过的类的对象,怎么办呢?此时我们需要另外一个库class-transformer。

    60810编辑于 2024-04-19
  • 来自专栏青年码农

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

    说白一点,就是一个接口,必定有必填字段和字段的要求,如果前台调用这个接口,字段不符合,应正确提示不符合的字段,class-validator 用于入的数据验证。 1 项目安装 yarn add class-validator 2 全局验证通道 对比前面的教程,可以看出这个问文件,只添加两行代码,一行是导入ValidationPipe ,另一行是开启一个全局验证通道 app.useGlobalPipes(new ValidationPipe()); //开启一个全局验证管道 await app.listen(3000); } bootstrap(); 3 使用class-validator 20' }) readonly name: string; @IsNotEmpty({ message: '昵称不为空' }) readonly nickname: string; } class-validator 定义很多,我们这里只演示IsNotEmpty, Length,如果需要更多的文档,请https://github.com/typestack/class-validator查看。

    2.3K1311发布于 2021-02-03
  • 来自专栏Node.js开发

    nestjs中如何使用class-validator和class-transformer

    前面两篇文章分别介绍了class-validator和class-transformer的使用,接着聊一下如何在nestjs中使用这两个包。 Nest.js自带数据验证,自带了三个开箱即用的管道:ValidationPipe、ParseIntPipe和ParseUUIDPipe, 其中ValidationPipe 配合class-validator 首先我们安装两个需要的依赖包:class-transformer和class-validator。 npm install class-validator class-transformer -S然后在xxxx.dto.ts文件中添加验证, 完善错误信息提示:import { IsNotEmpty, 以上便是nestjs中如何使用class-validator和class-transformer,希望对你有所帮助。

    1.8K10编辑于 2024-04-22
  • 来自专栏Nodejs技术栈

    Nest.js 实战系列四:使用管道、DTO 验证入参,摆脱 if-else 的恐惧

    使用 DTO 可以清晰的了解对象的结构,使用 Pipes(管道)配合 class-validator 还可以对参数类型进行判断,还可以在验证失败的时候抛出错误信息。 : string | number; } 上面简单编写了一些常用的验证手段,class-validator 里面有非常多的验证方法,有兴趣的读者可以访问官方文档去学习:GitHub: class-validator 上图可以看到 accountName 的 @IsNotEmpty() 已经生效了 注意:class-validator 还提供了一个方法叫 @IsEmpty(),这是表示参数必须为空,不要搞混了。 总结 本篇介绍了如何定义 DTO,如何使用 Pipes 管道,以及如何配合 class-validator 进行入参验证。 ://github.com/typestack/class-validator 往期回顾 Nest.js 实战系列二:数据库连接与使用 Nest.js 实战系列一:项目创建&路由设置&模块 Nest.js

    4.6K20发布于 2021-07-15
  • 来自专栏图雀社区

    Nest.js 从零到壹系列(五):使用管道、DTO 验证入参,摆脱 if-else 的恐惧

    使用 DTO 可以清晰的了解对象的结构,使用 Pipes(管道)配合 class-validator 还可以对参数类型进行判断,还可以在验证失败的时候抛出错误信息。 创建管道 简单介绍完一些概念后,开始实战,先创建 pipe 文件: $ nest g pipe validation pipe 这里我们还需要安装两个依赖包: $ yarn add class-validator : string | number; } 上面简单编写了一些常用的验证手段,class-validator 里面有非常多的验证方法,有兴趣的读者可以访问官方文档去学习:GitHub: class-validator 上图可以看到 accountName 的 @IsNotEmpty() 已经生效了 注意:class-validator 还提供了一个方法叫 @IsEmpty(),这是表示参数必须为空,不要搞混了。 总结 本篇介绍了如何定义 DTO,如何使用 Pipes 管道,以及如何配合 class-validator 进行入参验证。

    4.6K41发布于 2020-04-07
  • 来自专栏CRPER折腾记

    NestJS 7.x 折腾记: (5) 管道,一个好玩的东西!比如入参校验!

    大同小异~~ image.png 效果图 实战 其实官方教程写的挺好了, 局部管道和全局管道都写到了, 这里我们以更具通用性的入参全局管道做例子, 尽量写的更贴近业务和更为粗俗的解释吧~ 安装 # class-validator : 提供非常丰富的类型装饰器 # class-transformer: 可以把常规数据快速转成类~ # https://www.npmjs.com/package/class-validator # https ://www.npmjs.com/package/class-transformer yarn add class-validator class-transformer 封装入参拦截管道 Usage: 对象转换成指定类的实例 import { plainToClass } from 'class-transformer'; // 可以识别校验装饰器数据 import { validate } from 'class-validator nestjs/swagger'; import { IsInt, IsNumberString, IsOptional, IsString, Max, Min, } from 'class-validator

    1.4K30编辑于 2022-03-08
  • 来自专栏神奇的程序员的专栏

    实现nest的自定义注解

    前言 Nest 与 class-validator[1] 配合得很好,它允许我们使用基于装饰器的验证,在dto层中我们可以通过它的一些内置注解完成对参数的一些常用校验。 我们在阅读class-validator仓库文档的custom-validation-decorators[3]章节后,大概了解了它的流程,接下来我们来实践它。 参考资料 [1]class-validator: https://github.com/pleerock/class-validator [2]使用NestJS搭建服务端应用: https://juejin.cn

    87020编辑于 2022-04-10
  • 来自专栏Nest.js 实战系列

    Nest.js 实战 (四):利用 Pipe 管道实现数据验证和转换

    例如,使用 ValidationPipe 结合 class-validator,可以自动验证请求体或查询参数是否满足特定的 DTO(数据传输对象)定义,从而预防因数据格式错误引起的运行时异常 错误处理: 它使用 class-validator 库来检查数据是否符合定义在 DTOs 或请求模型上的验证规则 ParseIntPipe:将字符串类型的参数转换为整数 ParseFloatPipe:将字符串类型的参数转换为浮点数 undefined 或 null,则使用默认值替换它 ParseFilePipe:用于处理上传的文件,它可以验证文件的类型、大小等,确保上传的文件符合预期 自定义管道 1、 安装依赖 pnpm add class-validator from '@nestjs/common'; import { plainToClass } from 'class-transformer'; import { validate } from 'class-validator import { ApiProperty } from '@nestjs/swagger'; import { IsNotEmpty, IsNumber, IsOptional, IsUUID } from 'class-validator

    74410编辑于 2025-08-14
  • 来自专栏静之森

    从零开始的 Nest.js

    首先安装 class-validator,之后 main.ts 中引入全局管道 ValidationPipe,ValidationPipe是 nest 提供的一个类似于Joi之类的 Schema 验证器 ,他通过调用 class-validator来识别该属性是否正确或者需要,已阻止不必要的 nosql 注入。 user.dto.ts 2import { ApiProperty } from '@nestjs/swagger' 3import { 4 IsString, 5 IsNotEmpty, 6} from 'class-validator

    2K20编辑于 2021-12-28
  • 来自专栏前端专享

    TypeORM 多对多查询实现

    Column, PrimaryGeneratedColumn, ManyToMany, JoinTable, } from 'typeorm' import { IsNotEmpty } from 'class-validator Category[] } import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm' import { IsNotEmpty } from 'class-validator

    4.3K20发布于 2021-11-15
  • 来自专栏青年码农

    【Nest教程】实现一个简单的用户增删改查功能

    这四个是查询及验证使用 1 addUser.dto.ts import { ApiProperty } from '@nestjs/swagger'; import { IsNotEmpty } from 'class-validator deleteUser.dto.ts import { ApiProperty } from '@nestjs/swagger'; import { IsNotEmpty, IsInt } from 'class-validator queryUser.dto.ts import { ApiProperty } from '@nestjs/swagger'; import { IsNotEmpty, Min, IsInt } from 'class-validator updateUser.dto.ts import { ApiProperty } from '@nestjs/swagger'; import { IsNotEmpty, IsInt } from 'class-validator

    2.5K1311发布于 2021-02-03
  • 来自专栏Node.js开发

    class-transformer的使用

    上篇文章介绍了如何使用class-validator验证数据,接下来我们接着聊class-transformer的使用。 class-transformer直接翻译的意思就是类的转换,其实这里转换的不是类,而是对象,目的是将字面量对象转化为相应的类生成的对象,然后就可以使用class-validator验证了。

    1.7K10编辑于 2024-04-22
  • 来自专栏图雀社区

    Nest.js 从零到壹系列(七):讨厌写文档,Swagger UI 了解一下?

    即图中的 Schemas) 映射 DTO 点开 RegisterInfoDTO,发现里面是空的,接下来,我们配置一下参数信息,在 user.dto.ts 中引入 ApiProperty,然后添加到之前的 class-validator 上: // src/logical/user/user.dto.ts import { IsNotEmpty, IsNumber, IsString } from 'class-validator'; required: false 了: // src/logical/user/user.dto.ts import { IsNotEmpty, IsNumber, IsString } from 'class-validator 我们先完善登录接口的 DTO: // src/logical/user/user.dto.ts import { IsNotEmpty, IsNumber, IsString } from 'class-validator 我们先给 DTO 加点料: // src/logical/user/user.dto.ts import { IsNotEmpty, IsNumber, IsString } from 'class-validator

    5.3K10发布于 2020-04-17
  • 来自专栏小鑫同学编程历险记

    NestJs 管道(Pipe)

    首先执行 npm i --save class-validator class-transformer 安装必要的模块,接着为 CreateUserDto 增加验证相关的装饰器。 import { IsString, IsNumber, IsBoolean, IsNotEmpty } from 'class-validator'; export class CreateUserDto BadRequestException, Injectable, PipeTransform, } from '@nestjs/common'; import { validate } from 'class-validator

    1.2K20编辑于 2023-10-16
  • 来自专栏前端开发学kotlin

    前端开发者的 Kotlin 之旅:注解系统解析

    @Validate(minLength = 6) @JsonProperty(ignore = true) val password: String)前端对比:// 类似 class-validator } }}data class ValidationResult(val isValid: Boolean, val errors: List<String>)前端对比:// 类似 class-validator 的验证逻辑import { validate } from 'class-validator';async function validateForm(userForm: UserForm) { const

    35610编辑于 2025-08-27
  • 来自专栏大前端客栈

    Nest 复杂查询

    successResult(res); } QueryUserDto是查询参数类型 // BaseQueryDto.ts import { IsNotEmpty, IsNumber } from 'class-validator

    1.2K30编辑于 2022-12-22
  • 来自专栏杰的记事本

    TypeGraphQL的尝试

    authorizedField: string; @Authorized("ADMIN") @Field() adminField: string; } Validation TypeGraphQL 默认集成了 class-validator import { MaxLength, Length } from "class-validator"; @InputType() export class RecipeInput { @Field

    2.6K10发布于 2019-09-04
  • 来自专栏IT综合技术分享

    组件分享之前端组件——用于表单状态管理和验证的 React Hooks (Web + React Native)

    Native),在其构建时考虑到性能、UX 和 DX,采用原生 HTML 表单验证,与UI 库的开箱即用集成,体积小,无依赖,支持Yup , Zod , Superstruct , Joi , Vest , class-validator

    5.5K10编辑于 2022-05-20
  • 来自专栏神奇的程序员的专栏

    实现Nest中参数的联合类型校验

    场景概述 我们在进行接口开发时,客户端需要传入一个名为text的字段,它可能是string类型或Array<Object>类型(在TS中我们把这种关系称之为 联合类型 ),class-validator 解决方案 经过一番求助,翻了一圈class-validator的文档,发现没有现成的解决方案。那么,就只能自己拿到参数搞自定义校验了。

    1.9K20编辑于 2022-05-25
  • 来自专栏神光的编程秘籍

    一个参数验证,学会 Nest.js 的两大机制:Pipe、ExceptionFilter

    class-validation 这个包,它支持装饰器的方式来配置验证规则: 类似这样: import { IsEmail, IsNotEmpty, IsPhoneNumber, IsString } from "class-validator Injectable, ArgumentMetadata, BadRequestException } from '@nestjs/common'; import { validate } from 'class-validator

    1.7K10编辑于 2021-12-29
领券