【问题标题】:Angular2 http error vs success response, coming from ExpressAngular2 http 错误与成功响应,来自 Express
【发布时间】:2017-05-25 07:28:56
【问题描述】:

我想知道 Angular2 的 http 模块以不同方式处理成功与错误响应的原因和方法。

调用示例:

http.post(url, payload).map(response => response.json()).toPromise()

然后我在 promise 上调用 .then 并路由到成功或错误函数,将输出通过管道传输到控制台。我的问题/问题是,响应在成功期间为我格式化为一个对象,但对于错误,我得到了大而粗糙的完整 html 响应。在下面的示例中,我希望能够访问附加到响应的_body 的“errorMessageToUser”。最好的方法是什么?

.then(
  success => console.log("success", success),
  err => console.log("error", err))

这是 Express 中在本例中产生错误的代码

return res.status(401).json({ errorMessageToUser: "some error message" });

关于错误响应[问题的根源是,获取 _body 内容的干净方式是什么?还是在 Express 中传回参数的另一种方式?]

{
  _body: "{"errorMessageToUser":"some error message."}",
  headers: Headers,
  ok: false,
  status: 401,
  statusText: "Unauthorized"...
}

成功响应

{ group: "asdf", password: "asdf, "username: "asdf" }

--最终结果

我希望能够在错误响应中获取errorMessageToUser,现在唯一的方法是打开正文,将该字符串转换为json,取出errorMessage,然后去掉引号-非常脏

【问题讨论】:

    标签: json angular express


    【解决方案1】:

    作为一种解决方案,我只是将 statusText 更改为我想要的错误消息并将其路由到用户的 ui。

        res.statusMessage = "custom error message to user";
        return res.status(401).end();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-02
      • 2018-06-20
      • 2017-07-05
      • 2016-09-28
      • 2018-02-11
      相关资源
      最近更新 更多