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



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

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

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

谢谢!

我认为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'
}));

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