¿Hay alguna otra forma de establecer valores específicos en el esquema de validación de Joi para la clave, excepto el patrón de expresiones regulares?
Mi esquema de ejemplo:
const schema = joi.object().keys({ query: joi.object().keys({ // allow only apple and banana id: joi.string().regex(/^(apple|banana)$/).required(), }).required(), })También puede usar valid como
const schema = joi.object().keys({ query: joi.object().keys({ // allow only apple and banana id: joi.string().valid('apple','banana').required(), }).required(), })Referencia: https://github.com/hapijs/joi/blob/v13.1.2/API.md#anyvalidvalue---aliases-only-equal
Si desea aceptar uno o más valores (manzana, banana o ambos), puede usar allow : https://joi.dev/api/?v=17.3.0#anyallowvalues
Puede probar con .valid() para permitir joi solo con esa cadena específica.
const schema = joi.object().keys({ query: joi.object().keys({ role: joi.string().valid('admin','student').required(), // joi would allow only if role is admin or student. }).required(), })Esto es absolutamente igual a dar el campo "enam" en mongoose ODM para representar objetos en mongodb.