在我的NestJS中,我有一个如下所示的DTO对象:
export class Protocol {
public enabled?: boolean;
public allowed?: boolean;
constructor(enabled: boolean, allowed: boolean) { // It has a constructor
this.enabled = enabled;
this.allowed = allowed;
}
}
现在我想在一个RequestDTO中使用相同的协议来处理我的PATCH请求。
控制器:
modifySomething(@Param('id') id: string, @Param('uuid') uuid: string, @Body() body: ModifyRequest) {
return this.service.modify(id, uuid, body);
}
在我的DTO(ModifyRequest
)中:
export class Protocol {
public enabled?: boolean;
public allowed?: boolean;
constructor(enabled: boolean, allowed: boolean) { // It has a constructor
this.enabled = enabled;
this.allowed = allowed;
}
}
export class ModifyRequest {
public name?: string;
public nfs?: Protocol;
}
现在我的问题是:
我怎样才能正确地将传入的请求@BodyMap到这个DTO对象。以下是我在发布到这里之前尝试过的事情:
1.如果我删除了构造函数,那么它将工作。但是我不能删除它,因为它有一些其他的依赖项。
1.我还尝试了class-transformer
,如下所示:class-transformer
,如下所示:
import { Type } from 'class-transformer';
export class ModifyRequest {
public name?: string;
@Type(()=>Protocol)
public nfs?: Protocol;
}
然而,它没有工作:(
我希望在Response(必须有构造函数)和RequestDTO中使用相同的Protocol
。
内斯季斯
1条答案
按热度按时间owfi6suc1#
这是我如何通过
class-transformer
管理它的:它起作用了。
不确定是否有更好的技巧来处理它通过
class-transformer
没有一个new
。如果有人知道,请一定让我知道。