【发布时间】:2016-07-07 15:34:21
【问题描述】:
我在 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 中有什么可以帮助的吗,或者我需要为它编写自定义验证函数。
【问题讨论】:
标签: json validation hapijs joi