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

相关文章
Echarts实战案例代码(19):利用visualMap视觉映射组件制作五色玫瑰工作进程图
Echarts实战案例代码(19):利用visualMap视觉映射组件制作五色玫瑰工作进程图
641 0
|
6月前
|
Linux API 数据安全/隐私保护
保姆级图文教程:零基础OpenClaw阿里云/本地部署配置免费大模型API+集成QQ/企业微信及常见问题解答
OpenClaw(曾用名Clawdbot,昵称“小龙虾”)作为2026年热门的开源AI智能体平台,核心价值在于能将自然语言指令转化为实际操作,涵盖文件处理、程序控制、流程自动化等多种场景,无需用户具备编程基础。对于零基础用户而言,部署OpenClaw的核心需求的是“简单易操作、稳定可复用”,而阿里云部署可实现7×24小时稳定运行、多设备远程访问,本地部署则保障数据私有化,再结合QQ、企业微信接入,能让AI智能体融入日常沟通场景,大幅提升效率。
1960 131
|
数据可视化 数据库 开发者
PyCharm:Python开发者的智慧工作台全解析
PyCharm是Python开发的首选IDE,提供智能代码补全、高效调试、远程开发、Web与数据库支持等强大功能,助力开发者提升效率。
1086 0
|
监控 数据挖掘 开发工具
淘宝天猫商品详情数据接口采集攻略
本文详细介绍如何通过淘宝天猫商品详情数据接口采集商品信息。首先概述了常用接口(如taobao.item.get、tmall.item.get)的功能,可获取商品基础信息、描述及评价等。接着说明接入准备,包括注册认证、创建应用与申请权限,以及开发环境配置。最后提供采集流程指引,如通过商品链接或搜索接口获取ID,并以Python示例展示接口调用方法,助力开发者高效挖掘电商数据价值。
1568 1
Python采集淘宝店铺所有商品API接口指南
淘宝没有公开的官方API供采集店铺商品数据,但可以通过以下几种方法获取商品信息。需要注意的是,淘宝有严格的反爬机制,直接采集可能违反其服务条款。
|
SQL 存储 NoSQL
MongoDB和MySQL的区别
前言: MySQL与MongoDB都是开源的常用数据库,但是MySQL是传统的关系型数据库,MongoDB则是非关系型数据库,也叫文档型数据库,是一种NoSQL的数据库。它们各有各的优点,关键是看用在什么地方。
11441 23
|
数据采集 JSON API
.NET 3.5 中 HttpWebRequest 的核心用法及应用
【9月更文挑战第7天】在.NET 3.5环境下,HttpWebRequest 类是处理HTTP请求的一个核心组件,它封装了HTTP协议的细节,使得开发者可以方便地发送HTTP请求并接收响应。本文将详细介绍HttpWebRequest的核心用法及其实战应用。
939 6
|
Java 编译器 API
Java中的动态编译与运行
Java中的动态编译与运行
|
数据可视化 API 索引
DOTween教程☀️DOTween的使用教程
DOTween教程☀️DOTween的使用教程
|
存储 算法 Java
【底层服务/编程功底系列】「手把手教学系列」带你打造一个属于自己的规则引擎服务,打破任何业务难题(逻辑模型和API设计)(一)
【底层服务/编程功底系列】「手把手教学系列」带你打造一个属于自己的规则引擎服务,打破任何业务难题(逻辑模型和API设计)
830 1