I am using Joi
for validating body data.
所以,如果我有创建车辆的API。 我将创建如下所示的架构。
const validateUserVehicleData = (data) => {
const schema = Joi.object({
id: Joi.string(),
odometer_count: Joi.number().allow(null),
registration_number: Joi.string(),
current_milage: Joi.number(),
last_service_date: Joi.date(),
last_service_km: Joi.number(),
chassis_num: Joi.string(),
engine_num: Joi.string(),
vehicle_id: Joi.string(),
});
return schema.validate(data);
};
I know I can do here vehicle_id: Joi.string().required()
to make them individually required.
但是我想通过将数据动态传递到架构对象来使某些字段成为必需。
就像,如果我只想让其中的几个人变得像下面这样。
//It should make registration_number and currrent_mileage required
const schema = Joi.object({..}).required(['registration_number', 'currrent_mileage ']); // I know this doesn't exist but if there is any workaround
我还尝试了如下所示的步骤,使所有步骤都必需,但是它既不工作也不抛出任何错误。
// It should make all fields required
const schema = Joi.object({..}).required();
我在这里可以做的一件事是为相同的数据创建多个架构,这很好。
但是最终创建了三到四个用于验证相同数据的架构。
这附近有工作吗?我阅读了文档,但找不到类似的东西。