本工具主要是基于class-validator和class-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,所以建的是微信群,而微信群码很快就失效,所以想进交流群的小伙伴加我微信噢~~我拉你进群,欢迎大佬们加入