У меня есть 1 маршрут, 2 разные схемы joi, и я хочу иметь возможность динамически выбирать, какую схему я использую, основываясь на поле в полезной нагрузке.
"Один маршрут, 2 схемы (Hapi.js с Joi)"
Так что для контекста у меня есть маршрут хапи, и я использую валидацию joi "someSchema" hapiRoute.js:
...
"validate": {
"payload": someSchema
}
...
В schema.js:
function ChooseSchema(schemaA, schemaB) {
return Joi.when(Joi.ref("payload.data.attributes.someField"), {
"is": Joi.string().valid("fieldIsValue"),
"then": schemaA,
"otherwise": schemaB
});
}
module.exports = {
"someSchema": ChooseSchema(schemaA, schemaB)
}
Где schemaA и schemaB различаются
Поэтому я пытаюсь использовать "schemaA", если id "someField" равен значению:"fieldIsValue", в противном случае используйте schemaB.В настоящее время он не получает это значение "someField", и поэтому просто возвращает схему B, я считаю