我想获取由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'
答案 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
。