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

lle*_*aly 9 javascript validator.js zod

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

查看 validator.js 以获得许多其他有用的字符串验证函数。

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

谢谢!

Sou*_*man 14

我认为 Zod 意味着您可以validator.js通过 Zod 安装并使用它们的验证。Zod 的细化功能使这变得相当简单。例如,如果您想使用 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'
}));
Run Code Online (Sandbox Code Playgroud)

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

  • 谢谢!,他们应该将其添加到他们的文档中。我将创建问题 (4认同)