表示res.status(200).json(...)仅发送json消息。如何检索状态代码?

时间:2018-04-16 18:14:14

标签: json express angular5 http-status-code-301

在我的数据库中成功创建新项目后,我发送:

res.status(201).json({message:"Successfully Registered"});

在我有棱有角的前端,我能够console.log(res)并接收:

{message: "Successfully Registered"}

1)如何在前端获取状态代码? res.status返回undefined。我得到的唯一回应是JSON。

2)确定成功的所需API呼叫的最佳方法是什么?例如,当我登录并且凭据正确时,我应该检查200然后继续吗?或者发送自定义JSON消息并检查消息是否显示"成功登录"然后继续?

3 个答案:

答案 0 :(得分:1)

1-你可以做res.status(200).send("你在这里留言");

2-我会说在登录和验证凭据时最好的选择是创建一个会话

req.session.user = req.body.username //username is the name attribute of the textfield 

然后重定向到您喜欢的任何页面/您还可以将状态设置为200

res.status(200);

答案 1 :(得分:1)

我对Angular并不熟悉,但查看文档:

  1. 请参阅https://angular.io/api/http/Response
  2. 您需要执行以下操作:

    http
        .request('example.com')
        .subscribe(response => console.log(response.status));
    
    1. 当然,检查200没问题。通常使用REST API(根据您已经显示的内容推断),在登录后,您将返回JWT和200 OK。所有使用该JWT的后续API也将产生200 OK以及通常为JSON的响应主体。

答案 2 :(得分:0)

有点晚了,但是另一种选择是在JSON对象中包含状态:

res.status(201).json({message: "Successfully Registered", status: 201})

现在,您可以执行res.status来检查前端的状态,并使用它来执行其他操作。