gpt4 book ai didi

node.js - 如何过滤掉多余的模型属性

转载 作者:行者123 更新时间:2023-12-02 03:35:50 64 4
gpt4 key购买 nike

我有一个这样的 DTO 对象:

export class CreateProductDTO {
readonly _id: number;
readonly _name: string;
readonly _price: number;
}

DTO 在我的 post 方法中使用

@Post('users')
async addUser(@Response() res, @Body(new ValidationPipe()) createUserDTO: CreateUserDTO) {
await this.userService.addUser(createUserDTO).subscribe((users) => {
res.status(HttpStatus.OK).json(users);
});
}

当我发布 json 数据时,它将序列化为 CreateProduceDTO obcjet

{
"_id":1,
"_name":"Lux",
"_age":19
}

但是我发布了带有多余属性的json数据,它也序列化为带有多余属性的CreateProduceDTO对象

{
"_id":1,
"_name":"Lux",
"_age":19,
"test":"abcv"
}

CreateUserDTO { _id: 1, _name: 'Lux', _age: 19, test: 'abcv' }

我曾尝试用管道过滤它,但我不知道。谢谢大家。

最佳答案

如果你只想删除多余的属性,你可以像这样使用 ValidationPipe :

new ValidationPipe({whitelist: true})

如果您希望在存在任何非白名单属性时抛出错误:

new ValidationPipe({whitelist: true, forbidNonWhitelisted: true})

查看 https://www.npmjs.com/package/class-validator#whitelisting更多选择

关于node.js - 如何过滤掉多余的模型属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50245188/

64 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com