api - NestJS:在 POST 请求中将 @Param 和 body 值设置为 DTO
问题描述
我有一个 POST 请求条目,其中我指定一个“帐户”参数作为路径参数,并在正文中指定一个布尔值来设置验证状态,例如:
POST /users/authorized/USER_ACCOUNT1
身体会携带:
valid=1
我有以下控制器条目:
@ApiTags('users')
@ApiOperation( { summary: 'Set user account status. '} )
@Post('authorized/:account')
async setAuthStatus(params: SetUserAuthDto) {
return this.userService.setUserAuthDto(params);
}
如何将“帐户”和请求正文“状态”参数提供给同一个 DTO?我假设我不能在那里同时使用装饰器@Param 和@Body。我应该使用管道吗?
我是 NestJS 的新手,所以请原谅我的无知。
谢谢。
解决方案
@Params()
同时使用和 并没有错@Body()
。这实际上是一种常见的模式
@Post('authorized/:account')
async setAuthStatus(@Param('account') accountValue: string, @Body() body: SetUserAuthDto) {
// do your thing here
}
但是,如果您想使用单个装饰器,您可以使用该createParamDecorator
方法并让它返回req.params
并req.body
在一个合并的对象中,所以您可以这样做@ParamAndBody()
推荐阅读
- python - 从 Python 调用的 VBA 调用的 Python 脚本不起作用
- list - haskell中一些数字([1,1,1,1,1,1])的列表
- swift - SwiftUI Representable TextField 更改字体消失
- javascript - 我们可以在 .NetCore WebApi 中沿 c# 放置 JavaScript 代码吗
- javascript - 为什么我无法访问对象的属性?
- mysql - 服务器错误(RequestEntityTooLarge):请求实体太大:创建 configMap 时限制为 3145728
- yii2 - TCPDF 在一行之后跳过项目并仅打印一些数据行
- angular - 在两个同级组件之间交换引用
- sql - 删除操作间歇性减慢oracle 11g
- python - Plotly Dash:如何解决错误 dash_html_components.Div 检测到除子项以外的道具的组件