Ho un problema di convalida JSON passato in GET richiesta query param come stringa serializzata.Convalida stringa di query JSON come parametro di query utilizzando Joi
Quello che devo realizzare è analizzare questa stringa serializzata su JSON e convalidarla usando Joi.
Esempio: Dare è il JSON
{
limit: {size:10, page:0},
filter: {filter_by: 'foo', filter_val: 'foo', from: '1/1/2016',to: '1/1/2016' }
}
E questo JSON viene convertito in una query string è:
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
ho bisogno di qualcosa di simile a controllare:
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(),
}
}
Is c'è qualcosa in Joi che può aiutare in questo scenario, o ho bisogno di scrivere funzioni di convalida personalizzate per questo.
esattamente quello che stavo cercando. Grazie, – Badr
Penso che potresti semplicemente usare Qs contro request.query senza preoccuparti dell'URL, ad esempio 'Qs.parse (request.query)' – brasskazoo