Nestjs将JSON数组转换为字符串[]



我有以下获取请求:
/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和Query参数将始终以字符串形式出现。这就是底层HTTP适配器和解析包的工作方式。如果您希望它们是非字符串值,则需要向它们添加一个自定义的@Transform()装饰器,如@Transform({value} => JSON.parse(value))

最新更新