我正在使用NestJS。当我使用节点版本12.13时,我的数据传输对象有可选字段,验证管道会跳过它们。然而,在我更新到节点12.20后,如果与dto对应的请求主体不包含某些属性,pipe会自动将该属性添加到对象中,并将其设置为未定义,这可能会在我的代码中造成一些问题。有办法避免这种情况吗?
这是验证期间DTO传递给class-transformer
的副作用。您可以通过将以下选项传递给ValidationPipe
来重新激活原始行为。
new ValidationPipe({ transformOptions: { exposeUnsetFields: false } })