在下面的模式中,我想要求它具有纬度/经度或北/东键。如何做到这一点,并在此之后将其他可选键添加到架构?我查看了xor,但似乎只支持单个键,而不支持键集。
const schema = Joi.alternatives().try({
Northing: Joi.string().required(),
Easting: Joi.string().required(),
}, {
Lat: Joi.string().required(),
Lon: Joi.string().required(),
});
答案 0 :(得分:2)
我找到了解决方法:
const schema = Joi.object().keys({
Northing: Joi.string(),
Easting: Joi.string(),
Lat: Joi.string().when('Northing', {
is: Joi.string().required(),
then: Joi.string(),
}),
Lon: Joi.string().when('Easting', {
is: Joi.string().required(),
then: Joi.string(),
}),
}).xor('Northing', 'Lat').xor('Easting', 'Lon');