NestJS 删除不属于 dto 一部分的数据
我有一个像这样的 NestJS 控制器:
@Put('/:id')
updateLocalityInfo(
@Query('type') type: string,
@Body() data: EditLocalityDto,
@Body('parentId', ParseIntPipe) parentId: number,
@Param('id', ParseIntPipe) id: number,
) {
console.log(data);
return this.localitiesService.updateLocalityInformation(
type,
data,
id,
parentId,
);
}
我在其中获取了一堆数据。但是,我遇到了 Dto 和 ParentId 变量的问题。当我调用此路由时,parentId
似乎是 Dto 数据的一部分。 console.log 显示
{ name: 'exampleName', parentId: '1' }
我的 dto 只有一个名称:
import { ApiProperty } from '@nestjs/swagger';
export class EditLocalityDto {
@ApiProperty()
name: string;
}
我想摆脱作为 dto 数据一部分的parentId。一般来说我该怎么做
I have a NestJS controller like this:
@Put('/:id')
updateLocalityInfo(
@Query('type') type: string,
@Body() data: EditLocalityDto,
@Body('parentId', ParseIntPipe) parentId: number,
@Param('id', ParseIntPipe) id: number,
) {
console.log(data);
return this.localitiesService.updateLocalityInformation(
type,
data,
id,
parentId,
);
}
in which I'm getting a bunch of data. however, I'm having issues with the Dto and the parentId variable. When I call this route the parentId
seems to be part of the Dto-data. the console.log shows
{ name: 'exampleName', parentId: '1' }
my dto only has a name:
import { ApiProperty } from '@nestjs/swagger';
export class EditLocalityDto {
@ApiProperty()
name: string;
}
I want to get rid of the parentId being part of the dto-data. how do I do that in general
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以考虑以下两种方法之一
解决方案 1
使用 TS 从 DTO 中排除冗余属性:
解决方案 2
您可以将其添加到 DTO 本身,而不是排除该属性并在那里验证它:
我更喜欢后者
You could think of one of 2 approaches
Solution 1
Exclude the redundant property using TS from the DTO:
Solution 2
Instead of excluding the property, you could add it to the DTO itself and validate it there:
I'd prefer the later