Zod Validation Error 使用教程

Zod Validation Error 使用教程

zod-validation-errorWrap zod validation errors in user-friendly readable messages项目地址:https://gitcode.com/gh_mirrors/zo/zod-validation-error

项目介绍

zod-validation-error 是一个用于处理 Zod 验证错误消息的开源库。Zod 是一个 TypeScript 优先的验证库,而 zod-validation-error 则旨在简化从 Zod 验证错误中提取和格式化错误消息的过程。这个库可以帮助开发者更轻松地处理表单验证和其他需要复杂验证逻辑的场景。

项目快速启动

安装

首先,你需要安装 zodzod-validation-error

npm install zod zod-validation-error

基本使用

以下是一个简单的示例,展示如何使用 zod-validation-error 来处理 Zod 验证错误:

import { z } from 'zod';
import { fromZodError } from 'zod-validation-error';

const schema = z.object({
  username: z.string().min(3).max(20),
  email: z.string().email(),
});

try {
  schema.parse({ username: 'ab', email: 'invalid-email' });
} catch (err) {
  if (err instanceof z.ZodError) {
    const validationError = fromZodError(err);
    console.error(validationError.message);
  }
}

在这个示例中,我们定义了一个包含 usernameemail 字段的验证模式。当验证失败时,fromZodError 函数会将 Zod 错误转换为一个更易读的错误消息。

应用案例和最佳实践

表单验证

在 Web 开发中,表单验证是一个常见的应用场景。使用 zod-validation-error 可以简化错误消息的处理,提升用户体验。

import { z } from 'zod';
import { fromZodError } from 'zod-validation-error';

const userSchema = z.object({
  name: z.string().min(2),
  age: z.number().int().positive(),
});

const userData = { name: 'A', age: -1 };

try {
  userSchema.parse(userData);
} catch (err) {
  if (err instanceof z.ZodError) {
    const validationError = fromZodError(err);
    console.error(validationError.message);
  }
}

API 请求验证

在处理 API 请求时,使用 Zod 进行数据验证可以确保接收到的数据符合预期格式。结合 zod-validation-error,可以更方便地返回友好的错误信息。

import { z } from 'zod';
import { fromZodError } from 'zod-validation-error';

const apiSchema = z.object({
  id: z.string().uuid(),
  amount: z.number().positive(),
});

const requestData = { id: 'invalid-uuid', amount: -100 };

try {
  apiSchema.parse(requestData);
} catch (err) {
  if (err instanceof z.ZodError) {
    const validationError = fromZodError(err);
    console.error(validationError.message);
  }
}

典型生态项目

Zod

zod-validation-error 是建立在 Zod 之上的一个库。Zod 是一个强大的 TypeScript 验证库,提供了丰富的验证功能和类型推断能力。

React Hook Form

在 React 项目中,结合 react-hook-form 和 Zod 可以实现强大的表单验证功能。zod-validation-error 可以帮助你更优雅地处理表单验证错误。

import { useForm } from 'react-hook-form';
import { zodResolver } from '@hookform/resolvers/zod';
import { z } from 'zod';
import { fromZodError } from 'zod-validation-error';

const schema = z.object({
  name: z.string().min(2),
  email: z.string().email(),
});

const { register, handleSubmit, formState: { errors } } = useForm({
  resolver: zodResolver(schema),
});

const onSubmit =

zod-validation-errorWrap zod validation errors in user-friendly readable messages项目地址:https://gitcode.com/gh_mirrors/zo/zod-validation-error

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

巫清焘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值