0

我有以下获取请求:
/api?entitiesText=["america", "americans"]&phrasesText=["a month-long effort"]

我想转换entitiesText并:phrasesTextstring[]

export class ContentEnrichmentQuery {
    @IsArray()
    entitiesText?: string[];

    @IsArray()
    phrasesText?: string[];
}

这是方法:

@Get('/toppings')
async getViaPost(@Query(new ValidationPipe({ transform: true })) contentEnrichmentQuery: ContentEnrichmentQuery) {....}

现在我得到它们string而不是string[]

4

1 回答 1

1

URL 和 Query 参数将始终以字符串形式出现。这就是底层 HTTP 适配器和解析包的工作方式。如果您希望它们是非字符串值,则需要向@Transform()这些值添加自定义装饰器,例如@Transform({value} => JSON.parse(value))

于 2021-06-13T18:26:15.783 回答