guide
创建日期:2024-02-18 | 最近更新:2024-02-18
安装
npm i async-validator
使用
基本的使用包括 定义一个描述对象,将其分配给 schema,然后传入要验证的数据。
import Schema from 'async-validator';
const descriptor = {
name: {
type: 'string',
required: true,
validator: (rule, value) => value === 'muji',
},
age: {
type: 'number',
asyncValidator: (rule, value) => {
return new Promise((resolve, reject) => {
if (value < 18) {
reject('too young'); // reject with error message
} else {
resolve();
}
});
},
},
};
const validator = new Schema(descriptor);
// callback style
validator.validate({ name: 'muji' }, (errors, fields) => {
if (errors) {
// validation failed, errors is an array of all errors
// fields is an object keyed by field name with an array of
// errors per field
return handleErrors(errors, fields);
}
// validation passed
});
// 或者使用PROMISE
validator
.validate({ name: 'muji', age: 16 })
.then(() => {
// validation passed or without error message
})
.catch(({ errors, fields }) => {
return handleErrors(errors, fields);
});
API
Validate
function(source, [options], callback): Promise
-
source: 要验证的数据对象(必传) -
options: 验证选项(可选) -
callback: 回调函数(可选) 返回一个 Promise 对象,如果没有回调函数的话。 -
then()验证通过 -
catch({ errors, fields })验证失败,errors 是一个错误数组,fields 是一个对象,包含了每个字段的错误信息。 errors
[
{ "message": "name fails", "fieldValue": 12, "field": "name" },
{ "message": "too young", "fieldValue": 11, "field": "age" }
]
fields
{ "name": [{ "message": "name fails", "fieldValue": 12, "field": "name" }], "age": [{ "message": "too young", "fieldValue": 11, "field": "age" }] }
Options
suppressWarning: 如果设置为 true,那么当验证规则不存在时,将不会打印警告信息。默认为 false。first: 如果设置为 true,那么每个字段验证失败后只返回一个错误信息。默认为 false,即返回所有错误信息。firstFields: 如果设置为 true,那么每个字段第一个验证失败后只返回一个错误信息。默认为 false,即返回所有错误信息。