Nestjs 将 JSON arra 转换为字符串 []

Nestjs transform JSON arra as string[]

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

我想将 entitiesTextphrasesText 转换为 string[]:

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

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

这是方法:

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

现在我得到的是 string 而不是 string[]

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