5

シリアル化された文字列として GET リクエスト クエリ パラメータで渡される JSON の検証に問題があります。

私が達成する必要があるのは、このシリアル化された文字列を解析して JSON に戻し、Joi を使用して検証することです。

例: Give は JSON です

{
 limit: {size:10, page:0},
 filter: {filter_by: 'foo', filter_val: 'foo', from: '1/1/2016',to: '1/1/2016' }
}

そして、この JSON はクエリ文字列に変換されます。

limit%5Bsize%5D=10&limit%5Bpage%5D=0&filter%5Bfilter_by%5D=foo&filter%5Bfilter_val%5D=foo&filter%5Bfrom%5D=1%2F1%2F2016&filter%5Bto%5D=1%2F1%2F2016

確認するには、次のようなものが必要です。

 validate: {
          query: {
            limit: Joi.someMethodToGetJsonFromString.object().keys({
              size: Joi.number(),
              page: Joi.number()
            }
          filter: Joi.someMethodToGetJsonFromString,.object().keys({
              filter_by: Joi.string().valid(['option1', 'option2']),
              filter_val: Joi.string(),
              from: Joi.date(),
              to: Joi.date(),
            }
        }

Joi でこのシナリオに役立つものはありますか、それともカスタム検証関数を作成する必要があります。

4

1 に答える 1