第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

NestJs:使用類驗(yàn)證器驗(yàn)證對(duì)象數(shù)組

NestJs:使用類驗(yàn)證器驗(yàn)證對(duì)象數(shù)組

Cats萌萌 2023-09-07 10:12:18
我正在嘗試對(duì)數(shù)組的每個(gè)項(xiàng)目強(qiáng)制執(zhí)行驗(yàn)證。根據(jù)我的理解(如果我錯(cuò)了,請(qǐng)糾正我),類驗(yàn)證器不支持直接驗(yàn)證數(shù)組。它需要我們創(chuàng)建一個(gè)包裝類。因此,以下是課程:export class SequenceQuery {       @MinLength(10, {        message: 'collection name is too short',      })    collection: string;    identifier: string;    count: number;}export class SequenceQueries{    @ValidateNested({ each: true })    queries:SequenceQuery[];}以下是我的控制器:  @Get("getSequence")  async getSequence(@Body() query:SequenceQueries) {    return await this.sequenceService.getNextSequenceNew(query)  }以下是我傳遞給控制器的 JSON:{"queries":  [    {        "collection": "A",        "identifier": "abc",        "count": 1    },    {        "collection": "B",        "identifier": "mno",        "count": 5    },    {        "collection": "C",        "identifier": "xyz",        "count": 25    }]}但它似乎不起作用。它不會(huì)拋出任何驗(yàn)證消息。
查看完整描述

3 回答

?
縹緲止盈

TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個(gè)贊

我得到了問題的解決方案。


我應(yīng)該將我的包裝類更改為:


export class SequenceQueries{

    @ValidateNested({ each: true })

    @Type(() => SequenceQuery) // added @Type

    queries:SequenceQuery[];

}

但我將保留這個(gè)問題,以防萬(wàn)一有人有替代解決方案,例如不必創(chuàng)建包裝類。


查看完整回答
反對(duì) 回復(fù) 2023-09-07
?
慕標(biāo)5832272

TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個(gè)贊

Nestjs 中有我完整的解決方案/實(shí)現(xiàn)


首先創(chuàng)建我的 DTO 類

export class WebhookDto {

  @IsString()

  @IsEnum(WebHookType)

  type: string;


  @IsString()

  @IsUrl()

  url: string;


  @IsBoolean()

  active: boolean;

}


export class WebhookDtoArray {

  @IsArray()

  @ValidateNested({ each: true })

  @Type(() => WebhookDto)

  webhooks: WebhookDto[];

}

將我的 DTO 類放入我的控制器定義中

  @MessagePattern('set_webhooks')

  async setWebhooks(

    @Payload('body') webhookDtoArray: WebhookDtoArray,

    @Payload() data,

  ): Promise<Store> {

    return this.storeManagementService.setWebhooks(

      data.userPayload.id,

      webhookDtoArray,

    );

  }

郵遞員中我應(yīng)該發(fā)送的正文的示例

{

  "webhooks": [{

      "type": "InvoiceCreated",

      "url": "https://test.free.beeceptor.com",

      "active": true

    },

    {

      "type": "InvoiceSettled",

      "url": "https://test.free.beeceptor.com",

      "active": true

    },

    {

      "type": "InvoiceExpired",

      "url": "https://test.free.beeceptor.com",

      "active": true

    }

  ]

}


查看完整回答
反對(duì) 回復(fù) 2023-09-07
?
www說

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超8個(gè)贊

class-validator 確實(shí)支持?jǐn)?shù)組驗(yàn)證,您只需添加您在 @ValidateNested( { every: true } ) 中所做的操作,您只需將 every 添加到集合元素中:


export class SequenceQuery {? ?

@MinLength(10, {

? ? each: true,

? ? message: 'collection name is too short',

? })

collection: string;

identifier: string;

count: number;

}

查看完整回答
反對(duì) 回復(fù) 2023-09-07
  • 3 回答
  • 0 關(guān)注
  • 160 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)