5
GETリクエストクエリparamでシリアル化された文字列として渡される検証JSONの問題があります。Joiを使用してJSONクエリ文字列をクエリパラメータとして検証する
私が達成する必要があるのは、このシリアル化された文字列をJSONに解析して、Joiを使用して検証することです。
例:与えるが、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にはこのシナリオで役立つものがあります。あるいはカスタム検証関数を書く必要があります。
私が探していたもの。ありがとう、 – Badr
URLを気にせずにrequest.queryに対してQsを使うことができると思います。つまり、 'Qs.parse(request.query)' – brasskazoo