У меня возникла проблема проверки JSON, которая передается в параметре запроса запроса GET как сериализованная строка.Проверка строки запроса JSON в качестве параметра запроса с помощью Joi
Что мне нужно, так это разобрать эту сериализованную строку обратно в 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
Я думаю, вы могли бы просто использовать Qs против request.query, не беспокоясь о URL-адресе - например, 'Qs.parse (request.query)' – brasskazoo