如何将 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
包含我们的自定义错误消息。第二个例子成功。
我有一个使用 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
包含我们的自定义错误消息。第二个例子成功。