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

Vin*_*yen 7 json http-status-code-301 express angular5

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

res.status(201).json({message:"Successfully Registered"});
Run Code Online (Sandbox Code Playgroud)

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

{message: "Successfully Registered"}

1)如何获取前端的状态码?res.status返回未定义。我得到的唯一响应是 JSON。

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

Gus*_*sSL 9

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

res.status(201).json({message: "Successfully Registered", status: 201})
Run Code Online (Sandbox Code Playgroud)

现在您可以检查前端执行中的状态res.status并使用它来继续另一个操作。

  • 在两个地方发送相同的信息不遵循 DRY 原则 (5认同)

Ami*_* Rd 3

1-您可以执行 res.status(200).send("您在这里留言");

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

req.session.user = req.body.username //username is the name attribute of the textfield 
Run Code Online (Sandbox Code Playgroud)

然后重定向到您想要的任何页面/您也可以将状态设置为 200

res.status(200);
Run Code Online (Sandbox Code Playgroud)