web-dev-qa-db-ja.com

ExpressValidatorでオブジェクトの配列を検証します

エクスプレスバリデーターを使用してフィールドを検証しています。しかし今、私は2つまたは3つのオブジェクトの配列を持っています。これには、以下のような「userId」フィールドと「Hours」フィールドが含まれています。

[
  {
    user_id:1,
    hours:8
  },
  {
    user_id:2,
    hours:7
  }
]

hoursまたはuser_idのようなオブジェクトプロパティのいずれかが空であるかどうかを検証する必要があります。空の場合はエラーをスローします。

4
user10298495
let arr = [
  {
    user_id:1,
    hours:8
  },
  {
    user_id:2,
    hours:7
  }
]

あなたはこのようにチェックを入れることができます:

check("arr.*.user_id")  
  .not()  
  .isEmpty()

check("arr.*.hours")  
  .not()  
  .isEmpty()
11

これは、リクエストの本文にアクセスすることで実現できます。

const { body } = require('express-validator')

body('*.*')
  .notEmpty()
1
Thyago Dias