【问题标题】:how can i access the path and see the message of an error returned using JOI validation如何访问路径并查看使用 JOI 验证返回的错误消息
【发布时间】:2022-01-12 19:09:27
【问题描述】:

我正在尝试使用 joi 验证方法,但我无法访问从对象返回的路径或消息 我试图关注一些视频以了解更多但没有影响整个问题是我无法访问 joi 对象,尽管它得到了正确的安慰

    state ={
    username : "",
    password : "",
    errors :{}
};


schema =Joi.object().keys({
    username: Joi.string().required(),
    password:Joi.string().required()
})

validate = ()=>{
    const errors = {};
            const res = Joi.validate(this.state,this.schema,{abortEarly:false});
    console.log(res);        
    if (res.error===null ){
        this.setState({errors:{}});
        return null;
    }
    // this is where i get the error and can't access it 
    for (const error of res.error.details){
        errors[error.path] = error.message;
    }
    this.setState({errors});

}
handleSubmit=(e)=>{
    e.preventDefault();
    const errors = this.validate();
    if(errors){return}
    else{
        //call backend
        console.log("Passed");
    }
}

【问题讨论】:

    标签: javascript reactjs joi


    【解决方案1】:

    希望你现在已经弄清楚了?但是,以防万一,如果你使用的是最新版本的 Joi,那么如果你查看文档,你会发现现在正在架构上调用 validate 方法,不是 Joi 对象本身,这意味着你可以这样做 架构。 validate() 而不是 Joi.validate()。好的,愉快的编码:)

    【讨论】:

      猜你喜欢
      • 2014-11-15
      • 1970-01-01
      • 2011-10-22
      • 2019-04-28
      • 2020-09-13
      • 2020-08-10
      • 2012-09-07
      • 2020-11-30
      • 1970-01-01
      相关资源
      最近更新 更多