Skip to content

reidchan/class-validator-helper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

class-validator-helper

本工具主要是基于class-validatorclass-transformer做了一层简单的封装,让用户可以快速对json格式的数据进行校验,并打印出具体的参数位置。

快速开始

以下代码body没有传递address.area参数:

import { Validate } from 'class-validator-helper';

import {
  IsString,
  ValidateNested,
  IsNotEmpty,
} from 'class-validator';

import { Type } from 'class-transformer';

class CreateUserBody$Address {
  @IsString()
  @IsNotEmpty()
  province: string;

  @IsString()
  @IsNotEmpty()
  city: string;

  @IsString()
  @IsNotEmpty()
  area: string;

  @IsString()
  @IsNotEmpty()
  detail: string;
}

class CreateUserBody {
  @IsString()
  @IsNotEmpty()
  name: string;

  @IsNotEmpty()
  @ValidateNested()
  @Type(() => CreateUserBody$Address)
  address: CreateUserBody$Address;
}

const body = {
  name: 'Reid',
  address: {
    province: '广东省',
    city: '广州市',
    detail: '开心花园'
  }
};


(async () => {
  await Validate(CreateUserBody, body);
})();

故会报错抛出一个Error,方括号的内容为具体的参数位置,而前面是class-validator默认的提示信息,本工具会陆续取出错误信息(每次报错只会随机获取一个),直到没有错误为止:

Error: area should not be empty [address.area]

版本

版本 文档 上线时间
v0.0.4 点击跳转 2021-07-23

其他示例(校验数组)

以下示例addresses的第二个元素没有area字段:

import { Validate } from 'class-validator-helper';

import {
  IsString,
  ValidateNested,
  IsNotEmpty,
} from 'class-validator';

import { Type } from 'class-transformer';

class CreateUserBody$Address {
  @IsString()
  @IsNotEmpty()
  province: string;

  @IsString()
  @IsNotEmpty()
  city: string;

  @IsString()
  @IsNotEmpty()
  area: string;

  @IsString()
  @IsNotEmpty()
  detail: string;
}

class CreateUserBody {
  @IsNotEmpty()
  @ValidateNested({ each: true })
  @Type(() => CreateUserBody$Address)
  addresses: CreateUserBody$Address[];
}

const body = {
  addresses: [{
    province: '广东省',
    city: '广州市',
    area: '越秀区',
    detail: '开心花园'
  }, {
    province: '广东省',
    city: '揭阳市',
    detail: '开心农场'
  }]
};


(async () => {
  await Validate(CreateUserBody, body);
})();

抛出的错误信息:

Error: area should not be empty [addresses.1.area]

加入小组来面基~

由于本人很少上QQ,所以建的是微信群,而微信群码很快就失效,所以想进交流群的小伙伴加我微信噢~~我拉你进群,欢迎大佬们加入☺️

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published