【问题标题】:Get request status best practice获取请求状态最佳实践
【发布时间】:2018-01-31 09:03:25
【问题描述】:

在我的 Node.js 后端,我曾经在响应中添加一个布尔值来检查一切是否顺利:

if(req.body.user.username == null || req.body.user.username == '' || req.body.user.password == null || req.body.user.password == '' || req.body.user.email == null || req.body.user.email == ''){
    res.json({success: false, message: 'Ensure username, email and password provided.'});
  }else{
    user.save((err) => {
      if(err) {
        res.json({success: false, message: 'Username or Email already exists.'});
      }else{
        res.json({success: true, message: 'User created!',user :user});
      }
    });
  }

然后,像这样检查我前面的这个变量:

userRegister(body) {
    let headers = new Headers({ 'Content-Type': 'application/json' });
    let options = new RequestOptions({ headers: headers });
    return this._http.post("/api/register", body, options).map((res: Response) => res.json())
  }

 register(){
    //make JSON body
    let body = JSON.stringify({"user" : this.registeredUser})
    // Access the USER Service's Auth() method we defined
    this._userService.userRegister(body).subscribe((res) => {
      console.log(res);
      if(res.success){
        //gotoprofile
      }
    }
 }

有人告诉我这是一种不好的做法,我可以改为获取响应状态代码。我不想使用 Observables 或 Promises,因为这意味着我必须再次实现每个请求。

我试图获得这样的状态:

return this._http.post("/api/register", body, options).map((res: Response, status) => res.json())

但它不起作用..

【问题讨论】:

    标签: node.js angular httprequest


    【解决方案1】:

    如您的代码所示,它是发布请求。您可以使用以下标准状态码。

    if(req.body.user.username == null || req.body.user.username == '' || req.body.user.password == null || req.body.user.password == '' || req.body.user.email == null || req.body.user.email == ''){
        res.status(400).json({success: false, message: 'Ensure username, email and password provided.',reason:"Bad Request"});
      }else{
        user.save((err) => {
          if(err) {
            res.status(409).json({success: false, message: 'Username or Email already exists.',reason:"Conflict"});
          }else{
            res.status(201).json({success: true, message: 'User created!',user :user});
          }
        });
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-07
      • 2020-11-20
      • 2015-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-20
      相关资源
      最近更新 更多