假设我们对在GET
(和fastify)中运行的REST进行了以下REST调用:
http://localhost:5000/api/test?arrayParam=["abc","def"]&anotherParam="value"
没有解析任何内容,后端上的查询对象如下所示:
{
arrayParam: '["abc","def"]',
anotherParam: '"value"'
}
我们可以看到参数值是字符串,但是在arrayParam
的情况下,我们显然希望使用实际的数组。
我来自expressJS背景,来自那里,有几种方法。首先是使用JSON解析器中间件,比如body解析器。或者仅仅使用JSON.parse()
。
但是,什么是“适当的”,NestJS方法?我考虑使用DTO中定义的类型装饰器,并假定它们将被自动解析为我定义的类型。但这不像我想的那样。
我是这样定义的:
@IsOptional()
@IsArray()
arrayParam?: string[];
但是验证失败,因为arrayParam
是字符串而不是数组。所以我认为这不是正确的方法
发布于 2022-10-23 09:18:17
你发错了
http://localhost:5000/api/test?arrayParam[]=abc&arrayParam[]=def&anotherParam
https://stackoverflow.com/questions/74169928
复制相似问题