9

私はNestJSが初めてで、クエリパラメーターからフィルターDTOを入力しようとしています。

ここに私が持っているものがあります:

クエリ:

ローカルホスト:3000/api/checklists?stations=114630,114666,114667,114668

コントローラ

@Get()
public async getChecklists(@Query(ValidationPipe) filter: ChecklistFilter): Promise<ChecklistDto[]> {
    // ...
}

DTO

export class ChecklistFilter {

    @IsOptional()
    @IsArray()
    @IsString({ each: true })
    @Type(() => String)
    @Transform((value: string) => value.split(','))
    stations?: string[];

    // ...
}

これにより、クラスバリデーターは文句を言いませんが、フィルターオブジェクトでステーションは実際には配列ではなく、単一の文字列のままです。

検証パイプ内で配列に変換したい。どうすればそれを達成できますか?

4

2 に答える 2