问题答案 12026年5月26日 03:14
如何在 NestJS 中验证可选参数?
NestJS 在处理参数验证时,通常使用 和 这两个库。 允许我们通过装饰器在类上定义验证规则,而 可以将普通的对象转换成类的实例,使得 能够应用这些规则。对于可选参数的验证,我们可以使用 提供的装饰器,并通过传递选项来指定参数为可选。下面是一个如何验证可选参数的例子:首先,我们需要安装必要的包:然后,定义一个 DTO(数据传输对象)并使用装饰器来指明哪些参数是可选的:在这个例子中, 类定义了两个可选属性: 和 。 装饰器表示属性是可选的,意即如果这个属性在传入对象中不存在或者为 或 ,则 将不会应用后续的验证装饰器。在你的控制器中,你可以使用 装饰器结合 来自动验证传入的请求体: 的 选项设置为 时,仅会验证 DTO 中存在的属性,忽略未定义的属性。这样,即便是可选参数没有被传递,代码也不会因为验证失败而抛出错误。这样,NestJS 就可以在保持强大验证能力的同时,灵活地处理可选参数。如果你需要对特定的属性即使它们不是必须的也要进行验证,只需要在那个属性上不使用 装饰器即可。