我有以下获取请求:/api?entitiesText=["america", "americans"]&phrasesText=["a month-long effort"]
我想将entitiesText
和phrasesText
转换为string[]
:
export class ContentEnrichmentQuery {
@IsArray()
entitiesText?: string[];
@IsArray()
phrasesText?: string[];
}
这是一种方法:
@Get('/toppings')
async getViaPost(@Query(new ValidationPipe({ transform: true })) contentEnrichmentQuery: ContentEnrichmentQuery) {....}
现在我得到的是string
而不是string[]
URL和Query参数将始终以字符串形式出现。这就是底层HTTP适配器和解析包的工作方式。如果您希望它们是非字符串值,则需要向它们添加一个自定义的@Transform()
装饰器,如@Transform({value} => JSON.parse(value))