Cuando trato de usar joi.object.keys obtengo un error. Utilicé la función joi.object.keys en mi proyecto anterior pero no obtuve ningún error.
const checkSchema = Joi.object.keys({ // error is here email: Joi.string().email({ minDomainSegments: 2 }), password: Joi.string().pattern(new RegExp('^(?=.*?[AZ])(?=.*?[az])(?=.*?[0-9])(?=.*?[#?!@$ %^&*-]).{8,}$')), confirmPassword: Joi.string().valid(Joi.ref('password')).required(),});
Existe la posibilidad de que esté utilizando una versión anterior de JOI en sus proyectos anteriores. En su documentación más reciente, han eliminado la palabra clave del objeto al inicializar. Deberías probar esto:
const Joi = require("joi"); const checkSchema = Joi.object().keys({ // I changed here email: Joi.string().email({ minDomainSegments: 2 }), password: Joi.string().pattern( new RegExp( "^(?=.*?[AZ])(?=.*?[az])(?=.*?[0-9])(?=.*?[#?!@$ %^&*-]).{8,}$" ) ), confirmPassword: Joi.string().valid(Joi.ref("password")).required(), });Enlace de documentación: https://joi.dev/api/?v=17.4.2
Puede ser por cambio de versión. ¿Has probado Joi.object().keys({.......}) ?. Esto funcionará. También comparta su versión si la solución anterior no funcionó