node.js - 如何捕获 HttpErrorResponse 状态并将其显示在 Angular 组件中

标签 node.js angular

我有一个带有 node.js 的 Angular 项目后端,当我的服务器关闭或没有响应时,如何调用并获取 httpErrorResponse 状态或 header 以显示在我的组件页面中。

这是我的组件功能代码:

 UpdateData(){

    this.newServices.updateNews(result, result.id).subscribe(
    (res)=>{
         console.log(res)
    }),
    (error)=>{
      console.log(error)
    }
 }

我的service.ts函数:

    updateNews(data, id) {
    try {
     return this.http.post(this.baseurl + "/news/update/" + id, data)
    } catch (err) {
      this.handleError(err);
    }
   }

如何检查我的组件的 http 响应,以便我可以在浏览器上显示消息

最佳答案

一般不建议向用户显示从服务器返回的错误消息。例如,错误可能是:由于 CORS 策略,无法到达 xx.xx.xx。因此,如果您显示此内容,用户将无法理解发生了什么。因此建议使用 toastr 服务向用户显示错误。

https://www.npmjs.com/package/ngx-toastr

getPlayersList() {
    this.playerService.getPlayersList().subscribe((res: any) => {
      this.playersData = res.data;
    }, err => {
      this.toasterService.showFailure('Sorry something went wrong');
    })
  }

在某些情况下,如果你想显示来自 api 的错误,例如 500 响应,你可以这样做

getPlayersList() {
    this.playerService.getPlayersList().subscribe((res: any) => {
      this.playersData = res.data;
    }, err => {
      this.toasterService.showFailure(err.err.message);
    })
  }

关于node.js - 如何捕获 HttpErrorResponse 状态并将其显示在 Angular 组件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59975008/

相关文章:

javascript - Node.js MySQL 数据库连接 - 超时 (ETIMEDOUT)

node.js - 错误: cannot set up sessions without a secret or encryptionKey/signatureKey pair

javascript - NodeJs,同步开发模式

angular2 Material 表隐藏列

angular - Primeng饼图不显示

angular - 如何配置 PrimeNG 侧边栏为标题留出空间并能够将 Canvas 向右推

javascript - Angular ng-select : selectedItems. map 不是函数

node.js - 如何使用 RethinkDB 耗尽机器资源?

css - 在 Angular 中更新自定义复选框组件 View

javascript - AppJs 作为浏览器