如何将 zod 与 validator.js 一起使用

how to use zod with validator.js

我有一个使用 zod 的应用程序,但我想使用来自不同库的一些方法 (validator.js) zod 文档说:

查看 validator.js 了解其他一些有用的字符串验证函数。

不确定这是否意味着此功能已在 zod 上实现,或者我还必须安装 validator.js,在其他情况下如何同时使用这两个库?找不到任何例子。

谢谢!

我认为 Zod 意味着您可以安装 validator.js 并在 Zod 上使用他们的验证。 Zod 的 refine 函数使这变得相当简单。例如,如果您想使用 Zod 和验证器将字符串验证为信用卡号,它可能看起来像这样

import { z } from "zod";
import isCreditCard  from "validator/lib/isCreditCard";

const userSchema = z.object({
  name: z.string(),
  creditCard: z.string().refine(isCreditCard, {
    message: 'Must be a valid credit card number'
  }),
})

console.log(userSchema.safeParse({
  name: 'Doug',
  creditCard: '1234',
}));

console.log(userSchema.safeParse({
  name: 'steve',
  creditCard: '4000 0200 0000 0000'
}));

第一个示例失败,ZodError 包含我们的自定义错误消息。第二个例子成功。