我怎样才能正确验证日期?
How could I validate dates correctly?
我正在使用 celebrate 来验证日期,但我仍然可以添加比 end_date 更高的 start_date,我可以做些什么来防止这种行为?同样使用这样的格式 returns 出现以下错误:
Unknown date format YYYY-MM-DD
我怎样才能使用所需的格式?
routes.post(
'/world_series',
celebrate({
[Segments.BODY]: Joi.object().keys({
start_date: Joi.date().required(),
end_date: Joi.date().format('YYYY-MM-DD').greater(Joi.ref('start_date')).required(),
champion_id: Joi.string().required(),
runners_up_id: Joi.string().required(),
}),
}),
WorldSeriesController.create
);
阅读文档后我发现我可以使用规则集来解决我的问题,这里是代码:
routes.post(
'/world_series',
celebrate({
[Segments.BODY]: Joi.object().keys({
start_date: Joi.date().required(),
end_date: Joi.date()
.ruleset.greater(Joi.ref('start_date'))
.rule({ message: 'end_date must be greater than start_date' })
.required(),
champion_id: Joi.string().required(),
runners_up_id: Joi.string().required(),
}),
}),
WorldSeriesController.create
);
我正在使用 celebrate 来验证日期,但我仍然可以添加比 end_date 更高的 start_date,我可以做些什么来防止这种行为?同样使用这样的格式 returns 出现以下错误:
Unknown date format YYYY-MM-DD
我怎样才能使用所需的格式?
routes.post(
'/world_series',
celebrate({
[Segments.BODY]: Joi.object().keys({
start_date: Joi.date().required(),
end_date: Joi.date().format('YYYY-MM-DD').greater(Joi.ref('start_date')).required(),
champion_id: Joi.string().required(),
runners_up_id: Joi.string().required(),
}),
}),
WorldSeriesController.create
);
阅读文档后我发现我可以使用规则集来解决我的问题,这里是代码:
routes.post(
'/world_series',
celebrate({
[Segments.BODY]: Joi.object().keys({
start_date: Joi.date().required(),
end_date: Joi.date()
.ruleset.greater(Joi.ref('start_date'))
.rule({ message: 'end_date must be greater than start_date' })
.required(),
champion_id: Joi.string().required(),
runners_up_id: Joi.string().required(),
}),
}),
WorldSeriesController.create
);