tdo*_*pot 10 validation node.js hapijs joi
我目前正在HapiJS/NodeJS中使用Joi来验证数据.一个POST特别具有两个ISO日期(开始日期和结束日期),这两个日期被传递到路线并经过验证以确保它们是ISO日期.
{
method: 'POST',
path: '/api/calendar',
handler: calendar.getInfo,
config: {
validate: {
payload: {
start: Joi.date().iso(),
end: Joi.date().iso()
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以通过这两个日期并在控制器中进行一些验证,以确保开始日期在结束日期之前(即,开始日期不能是2月,结束日期是1月).
我的问题是,如果有一种方法让Joi确定这个并且出错了吗?如果需要更多信息,请与我们联系.
谢谢!Ť
Ger*_*osi 22
您可以使用它Joi.ref()来引用其他值:
end: Joi.date().iso().min(Joi.ref('start'))
Run Code Online (Sandbox Code Playgroud)
您可以使用比较两个日期喜欢
const Joi = require('joi');
const messagesUpdateObj = {
startTime: Joi.date().iso().required(),
endTime : Joi.date().iso().greater(Joi.ref('startTime')).required()
};
let schema = Joi.object().keys(messagesUpdateObj);
console.log(Joi.validate({startTime : '2018-08-28T11:46:30.120',endTime : '2018-08-29T11:46:30.120'}, schema));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5724 次 |
| 最近记录: |