NestJS 是否有可能使用不同的验证库?
Is there a possibility for NestJS to use a different Validation libray?
这只是一个一般性问题,但我很好奇 NestJS 是否有可能使用不同的验证库,因为它已经可以使用不同的日志库。
当前库是class-验证器。
我目前正在构建一个供个人使用的验证器库,但我不太确定如何将它集成到 NestJS 中,因为它有自己的全局配置以及验证库中包含的所有其他电池。
https://docs.nestjs.com/techniques/validation#using-the-built-in-validationpipe
绝对可以使用 class-validator
以外的东西。我个人喜欢 @deepkit/types
并且正在努力在一个包中为它提供一个 ValidationPipe
以便它可以被重新使用。但即使是 Nest 的文档也显示使用 JoiValidationPipe
(尽管每个路由都有)。简而言之,如果验证器能够使用反射(即它是基于 class 的),您可以创建您的 DTO 并让您的自定义验证管道读取元数据并进行验证,如果它是基于模式的,您将需要一个每个路由(可能每个装饰器)管道以确保选择正确的模式。但是,是的,绝对有可能使用一些东西,这是 Nest 的美妙之处之一。
这只是一个一般性问题,但我很好奇 NestJS 是否有可能使用不同的验证库,因为它已经可以使用不同的日志库。
当前库是class-验证器。
我目前正在构建一个供个人使用的验证器库,但我不太确定如何将它集成到 NestJS 中,因为它有自己的全局配置以及验证库中包含的所有其他电池。
https://docs.nestjs.com/techniques/validation#using-the-built-in-validationpipe
绝对可以使用 class-validator
以外的东西。我个人喜欢 @deepkit/types
并且正在努力在一个包中为它提供一个 ValidationPipe
以便它可以被重新使用。但即使是 Nest 的文档也显示使用 JoiValidationPipe
(尽管每个路由都有)。简而言之,如果验证器能够使用反射(即它是基于 class 的),您可以创建您的 DTO 并让您的自定义验证管道读取元数据并进行验证,如果它是基于模式的,您将需要一个每个路由(可能每个装饰器)管道以确保选择正确的模式。但是,是的,绝对有可能使用一些东西,这是 Nest 的美妙之处之一。