Des*_*esu 3 typescript class-validator nestjs class-transformer
我在 DTO 中使用 NestJS 和类转换器。
这是我所做的和我的问题的一个简单示例:
export class SomeDTO{
@Transform(({ value }) => value === "true" || value === true || value === 1)
@IsBoolean()
doDelete : boolean;
}
Run Code Online (Sandbox Code Playgroud)
我什至尝试过@Transform(({ value }) => { return value === "true" || value === true || value === 1})
现在,在我的控制器中:
@Post("something")
someOperation(@Body() data : SomeDTO){
console.log(data);
}
Run Code Online (Sandbox Code Playgroud)
记录数据时,预期的布尔值doDelete仍然是字符串,并且没有转换为其本机布尔类型。
是否尝试过提供这样的数据:
@Transform(({ value }) => { return false})
但在控制器中,如果我们将原始DTO doDelete设置为true,数据仍然是相同的。它没有像我们通过 暗示的那样转换为 false @Transform()。
我做错什么了吗?感谢您的帮助并提供了一些线索。
我已经尝试过这些相关参考文献,但似乎没有任何效果。
如果transform: true未设置为 的选项,ValidationPipe则@Transform()您正在使用的将仅在内存中用于检查class-validator,而不会作为传递给路由处理程序的值保留。设置transform: true意味着 Nest 将传回plainToInstance已发送的值。
| 归档时间: |
|
| 查看次数: |
3566 次 |
| 最近记录: |