我无法收到错误响应node.js以角度返回

时间:2019-06-27 02:50:42

标签: javascript node.js angular

我想获取由angular节点发送的错误响应消息,但我不能这样做。

Node.js:

res.status(401).send({ "ERROR": "001", "message": "this is error" });

角度:

public get(body) {
    return this.httpClient.post(`${this.API_URL}~`, body).catch(this.handleError);;
  }

  private handleError(error: any) {
    console.log(error);
    return Observable.throw(error);
  }

chomme中的控制台

Http failure response for http://localhost:8000/~: 401 Unauthorized

随心所欲

{"ERROR": "001", "message": "this is error"}

尽管我可以在chrome网络上进行确认,但是由于console.log中的输出为'Http failure response for http: // localhost: 8000 / ~: 401 Unauthorized'

,所以无法使用angular的错误消息。

1 个答案:

答案 0 :(得分:3)

在Angular中进行错误处理时,最佳实践是使用RxJS运算符通过可管道操作来处理它。

您可以使用Deferred/delayed tasks运算符来实现。

import { catchError } from 'rxjs/operators';
.
.

public get(body) {
  return this.httpClient.post(`${this.API_URL}~`, body)
    .pipe(
      map(...),
      catchError(error => {
        // to get error response object
        console.log(error);
        // handle the rest of the error here
      })
    );
}

要访问错误代码,可以使用error.status

要访问错误消息,可以使用error.message