16

1 つのフィールドを検証し、検証なしで別のフィールドを許可したい。例として検証するだけです:「名」フィールド。私のコードでは、「ペイロード」にコメントすると、hapi は任意のフィールドを記録できます。「ペイロード」のコメントを外すと、hapijs はフィールドを記録できませんが、例で「firstname」が「string」であることを検証したいだけです。残りのフィールドを許可します。可変フィールドをデータベース構成に一致させる予定なので、いくつかの固定フィールドを検証し、バックエンドではなくフロントエンドで制御される別の可変フィールドを保存します。

  config: {
      validate: {
         /* payload: {
            firstname: Joi.string(),
            lastname: Joi.string()
            ...anothers fields...

          }*/
      }
  }

更新: Robert K. Bell のおかげで、「検証」を追加することで解決策を適応させました。

  config: {
      validate: {
         options: {
            allowUnknown: true
          },
          payload: {
            firstname: Joi.string()
          }
      }
  }
4

2 に答える 2

18

あなたは方法を探しているかもしれません.unknown()

object.unknown([allow])

現在のオブジェクトのスコープのみの不明なキーの処理をオーバーライドします (子には適用されません)。

  • allow- の場合false、不明なキーは許可されません。それ以外の場合、不明なキーは無視されます。

js const schema = Joi.object({ a: Joi.any() }).unknown();

于 2016-09-15T02:47:33.477 に答える