async-validator.js数据校验器

简介: async-validator.js数据校验器

文档:

安装

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 < 18) {
          reject('too young'); // reject with error message
        } else {
          resolve();
        }
      });
    },
  },
};
const validator = new Validator(rules);
let data = { name: 'Tom', age: 16 };
validator
  .validate(data)
  .then(() => {
    // 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

image.png

相关文章
|
数据采集 数据可视化 vr&ar
Python3实现基于ARIMA模型来预测茅台股票价格趋势
Python3实现基于ARIMA模型来预测茅台股票价格趋势
881 0
|
移动开发 JavaScript 安全
Vue 应用程序性能优化:代码压缩、加密和混淆配置详解
Vue 应用程序性能优化:代码压缩、加密和混淆配置详解
541 0
|
开发工具 Android开发 Windows
Android sdk下载安装配置教程
Android sdk下载安装配置教程
Android sdk下载安装配置教程
|
搜索推荐 UED
Web Accessibility(Web A11y):构建包容性网络的关键步骤
Web无障碍性(Web Accessibility,简称Web A11y)是一项旨在确保网站和应用程序能够让所有人,包括残障人士,都能轻松访问和使用的关键实践。本博客将深入探讨Web无障碍性的概念、重要性以及如何在您的项目中实施无障碍设计的关键步骤。
259 0
|
存储 Java 关系型数据库
JPA不识别MySQL枚举类型的解决方案
在JPA中处理MySQL的枚举类型,需要在实体类与数据库之间进行适当的转换。可以选择使用 `@Enumerated`注解、实现自定义的转换器,或者使用原生SQL查询来解决JPA不直接支持MySQL枚举类型的问题。选择最佳方案时,应考虑项目的具体需求和架构。通过正确的映射和转换,可以确保JPA与MySQL数据库间高效且安全的数据交互。
295 6
|
SQL 关系型数据库 MySQL
【Seata1.5.2 下载 & 配置 & 整合 & 踩坑 & 测试】—— 含各种踩坑记录(详细版)(上)
【Seata1.5.2 下载 & 配置 & 整合 & 踩坑 & 测试】—— 含各种踩坑记录(详细版)
1754 0
电子书阅读分享《Java开发手册(嵩山版)》
电子书阅读分享《Java开发手册(嵩山版)》
|
API Java 数据库连接
从平凡到卓越:Hibernate Criteria API 让你的数据库查询瞬间高大上,彻底告别复杂SQL!
【8月更文挑战第31天】构建复杂查询是数据库应用开发中的常见需求。Hibernate 的 Criteria API 以其强大和灵活的特点,允许开发者以面向对象的方式构建查询逻辑,同时具备 SQL 的表达力。本文将介绍 Criteria API 的基本用法并通过示例展示其实际应用。此 API 通过 API 构建查询条件而非直接编写查询语句,提高了代码的可读性和安全性。无论是简单的条件过滤还是复杂的分页和连接查询,Criteria API 均能胜任,有助于提升开发效率和应用的健壮性。
401 0
|
SQL 缓存 Java
使用Hibernate实现复杂数据库查询优化策略
使用Hibernate实现复杂数据库查询优化策略
|
JavaScript Linux
Centos7修改yum源为国内yum源方法
Centos7修改yum源为国内yum源方法
3978 0
Centos7修改yum源为国内yum源方法