微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Rocket发生错误时如何返回500以外的状态码?

如何解决Rocket发生错误时如何返回500以外的状态码?

用户输入的密码太短时,我试图让我的 Rocket 后端返回 HTTP 400。当我尝试使用太短的密码发送请求时,请求会出现混乱并返回 500,因为我使用的是 Err() 函数,这绝对不是正确的处理方式。

这是我的功能

#[post("/addUser",format = "json",data = "<new_user>")]
pub fn add_user(conn: CameraServerDbConn,new_user: Json<Insertableuser>) -> &'static str {
    let new_user_decoded = new_user.into_inner();

    if new_user_decoded.password.chars().count() < 8 {
        return Err(Status::BadRequest).unwrap();
    }

    let new_user_ready = Insertableuser {
        username: new_user_decoded.username,password: hash(new_user_decoded.password,DEFAULT_COST).unwrap(),};

    insert(new_user_ready,&conn).unwrap();
    return "Hello";
}

返回不同状态代码的正确方法是什么?如果我只是尝试返回状态,Rust 会抱怨我返回的是状态而不是 str。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。