我正在尝试创建一个可重用的函数,您可以在joi模式中传递该函数并对其运行验证 req.body . 我想验证我的变量 schema 以确保它是有效的JOI模式。
req.body
schema
有办法吗?
function validatePayload(schema) { return (req, res, next) => { const valid = joi.validate(req.body, schema) if (valid.error) { return handleErr(res, HttpStatus.BAD_REQUEST, valid.error.details[0].message) } return next() } }
看来,乔伊 internally validates a schema 通过检查在模式原型链中是否找到joi构造函数,因此,您可能可以使用相同的验证:
const mySchema = Joi.object().keys({ username: Joi.string(), password: Joi.string() }); const isValidSchema = mySchema instanceof Joi.constructor; console.log(isValidSchema);
<script src="https://cdn.jsdelivr.net/npm/joi-browser@13.4.0/dist/joi-browser.min.js"></script>