您当前的位置: 首页 > 

彭世瑜

暂无认证

  • 3浏览

    0关注

    2791博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

async-validator.js数据校验器

彭世瑜 发布时间:2022-06-28 09:55:23 ,浏览量:3

文档:

  • https://www.npmjs.com/package/async-validator
  • https://github.com/yiminghe/async-validator

安装

npm i async-validator

示例

// demo.mjs
// node(v16.14.0)

// import Schema from 'async-validator';

// fix: 文档给出的引入方式报错
import asyncValidator from 'async-validator';
const Validator = asyncValidator.default;

// 定义校验规则
const rules = {
  name: {
    type: 'string',
    required: true,
    validator: (rule, value) => value === 'muji',
  },
  age: {
    type: 'number',
    asyncValidator: (rule, value) => {
      return new Promise((resolve, reject) => {
        if (value  {
    // validation passed or without error message
    console.log('validate passed');
  })
  .catch(({ errors, fields }) => {
    console.log(errors, fields);
  });


打印出的校验信息

[
  { message: 'name fails', fieldValue: 'Tom', field: 'name' },
  { message: 'too young', fieldValue: 16, field: 'age' }
] {
  name: [ { message: 'name fails', fieldValue: 'Tom', field: 'name' } ],
  age: [ { message: 'too young', fieldValue: 16, field: 'age' } ]
}

rule的属性

type
required
pattern
len
enum
min/max

可以使用的 Type

类型描述stringMust be of type string. This is the default type.numberMust be of type number.booleanMust be of type boolean.methodMust be of type function.regexpMust be an instance of RegExp or a string that does not generate an exception when creating a new RegExp.integerMust be of type number and an integer.floatMust be of type number and a floating point number.arrayMust be an array as determined by Array.isArray.objectMust be of type object and not Array.isArray.enumValue must exist in the enum.dateValue must be valid as determined by DateurlMust be of type url.hexMust be of type hex.emailMust be of type email.anyCan be any type.
关注
打赏
1665367115
查看更多评论
立即登录/注册

微信扫码登录

0.0563s