joi校验-忽略某个字段&字段无法在body中获取

使用joi校验时,如果你的校验规则里没有某个字段,那么你无法再读取到他

 

1 const userSchema = {
2     body:{
3         name: Joi.string().alphanum().min(3).max(12).required(),
4     }
5 }

 

例:客户端会传来name和age两个字段,我只想校验name字段,如果你在规则只写了name的校验规则,那么你的req.body里将只有name,不包含在校验规则里的字段会被剔除,query和params同理

解决方法:

const userSchema = {
    body:{
        name: Joi.string().alphanum().min(3).max(12).required(),
        age: Joi.any()
    }
}

对不想校验的字段添加any()校验规则,允许他可以是任何值,包括为空

 

posted @ 2023-06-24 22:49  练隐光寒  阅读(74)  评论(0)    收藏  举报