[英]Is there's a way to validate unknown keys with JOI on nested payloads?
我有一个使用 Joi 验证传入请求的中间件。
export default (schema: any) => async (req: Request, res: Response, next: NextFunction) => {
try {
const validation = schema.validate(req, { abortEarly: false })
if (validation.error) throw validation.error
return next()
} catch (error) {
return res.status(400).json({ error: error.details })
}
}
为了测试,提议,我的架构如下
const schema = Joi.object({
headers: Joi.object()
.keys({
page: Joi.string().required()
})
.unknown(true)
.label('headers'),
body: Joi.object({
page: Joi.string().required()
})
})
我正在用 Postman 测试这个 function。当我不发送 header 时,它失败但显示以下错误:
我希望能够仅验证模式中的“页面”字段,而忽略上面的任何其他字段。
更改您的验证并将 stripUnknown 选项添加为 true:
const validation = schema.validate(req, { abortEarly: false, stripUnknown:true })
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.