LoginSignup
1
1

More than 3 years have passed since last update.

express-validatorでoneOfを使用する際の注意点

Posted at

express-validatorでチェック処理実装時に出くわした事象をメモ。

配列に対しては問題なく動作する。

配列
["a","b","c"]

以下のようなオブジェクトに対してoneOfを指定すると、正常に動作する。

oneOfが動作するオブジェクト
  "obj": {
    "0": {
      "key1": "value1"
    },
    "1": {
      "key2": "value2"
    }
  }

添え字が配列のように連番で付与されている場合、配列の体をなしていると見なされると思われる。
以下のようなオブジェクトに対してはoneOfは正しく動作しない様子。

oneOfが動作しないオブジェクト
  "obj": {
    "0": {
      "key1": "value1"
    }
  }

上記のような、配列の体をなしていないオブジェクト(?)の場合、エラーが発生するような値を送信しても、無視されてしまう。
APIが予期せぬ動作を起こす可能性があるため、オブジェクトのチェック処理にはoneOfは使用すべきではないかと。。
(ドキュメントにもArrayに対して使ってねというような内容が書かれているみたいなので、オブジェクトに対して使用するのは元々非推奨なのだと思う。。。)

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1