我正在尝试在NestJs控制器中同时应用ValidationPipe()
和ParseIntPipe()
参数。
目的是ParseIntPipe()
仅适用于Body
DTO中的所有参数,@Param('id')
但ValidationPipe()
所有参数均适用CreateDataParams
。
但是,我似乎无法按照我想要的方式来应用两个管道。这是我所拥有的:
@Post(':id')
@UsePipes(new ValidationPipe())
async create(
@Param('id', new ParseIntPipe()) id: number, //this doesn't work
@Param() params: CreateDataParams,
@Body() createDto: CreateDto
) {
// params.id
}
我试图让另一个@Param('id')
人使用该ParseIntPipe()
变压器,但这不起作用。
我怎样才能同时应用ValidationPipe()
和应用ParseIntPipe()
参数?
如果应用ParseIntPipe
到id
PARAM,它只会改变id
,但没有财产id
的params
,在这里它会留一个string
。
相反,您可以使用class-transformer
将参数转换为number
:
import { Transform } from 'class-transformer';
export class CreateDataParams {
@Transform(id => parseInt(id), {toClassOnly: true})
id: number;
}
然后将ValidationPipe
搭配使用选项transform: true
:
@Post(':id')
@UsePipes(new ValidationPipe({transform: true}))
async create(
@Param() params: CreateDataParams,
@Body() createDto: CreateDto
) {
// params.id
}
不过请注意,这是不安全的,因为eg parseInt('5abc010')
是5
。因此,您可能需要对转换功能进行其他检查。
问题内容: 我有一个简单的页面,其中包含一些iframe部分(以显示RSS链接)。如何将相同的CSS格式从首页应用到iframe中显示的页面? 问题答案: 编辑:除非设置了适当的CORS标头,否则这不能跨域工作。 这里有两件事:iframe块的样式和嵌入在iframe中的页面的样式。您可以按通常方式设置iframe块的样式: 必须通过将iframe中嵌入的页面样式包含在子页面中来进行设置: 或者可
我有大约30个网页,都是超文本标记语言表单。每个页面都有两个或更多不同的表单元素——选择、输入文本、复选框、文本区域——以及各种用户界面元素、弹出窗口、表单验证等。我正在尝试重构页面中使用的jQuery以使用DRY原理,但不确定如何做到这一点。这里有一些使用的jQuery示例: 示例代码块A: 示例代码块B: 示例代码块C: 所有这些都包含在文件中。准备好的上面的实际代码列表没有那么重要。我试图让
问题内容: 在将其标记为重复之前,让我向您解释,我已经阅读了此页面以及许多其他内容,但仍然没有找到解决问题的方法。 这就是我遇到的问题:给定两个2D数组,我想在两个数组上应用函数F。F将两个一维数组作为输入。 请注意,这仅用于演示。这里真正的问题是在两组一维数组上工作的泛型函数F。 向量化要么完全失败,要么出错,或者应用逐个元素的功能,而不是逐个数组(或逐行) 迭代地应用功能;例如,使用上面所定义
问题内容: 我无法获得CSS生成的内容可用于元素: 有没有人有一个解决方案 实际 工作?提前致谢。 问题答案: 您可以使用jQuery的函数来访问它。 例 这是一个示例,向我展示了如何将css应用于通常在屏幕左上方找到的jQuery徽标。请注意,它必须是相同的域/端口等,因此这就是我的示例在iframe中使用jsfiddle的原因。
问题内容: 在Python中的lambda函数上使用装饰器有什么语法?例: 结果如下: 但是,当我尝试使用lambda进行相同操作时: 我得到这个: 我觉得这可能是通过允许将语句“插入” lambda使其更通用的好方法。但是,如果存在这样的功能,我不知道语法是什么。 问题答案:
也就是说,我想要达到的目标可以从以下的角度来看 如何使用管道实现?