1.简介

一般前后端的响应会约定一个模式来方便前端的响应处理,如nest.js出现异常时的模式:

{"statusCode":400,"data": null,"message": "Bad Request"
}

这样前端可以直接判断statusCode来处理响应

但是,controller方法里会直接返回需要的数据,即data部分

如果要在所有controller方法里都包裹上一层statusCode,这样代价又比较大,所以希望有一个统一的切面来转换正常响应数据

在nest.js里可以使用Interceptor来实现这种响应数据转换

2.实现

实现一个ResponseTransformInterceptor拦截器

import { NestInterceptor, ExecutionContext, CallHandler } from '@nestjs/common';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';export interface Response<T> {statusCode: number;message: string;data: T;
}/*** Global response transformation interceptor* HttpException thrown directly and Pipe verification errors will not pass t

nest.js实战之Interceptor转换响应相关推荐

  1. 学完这篇 Nest.js 实战,还没入门的来锤我!(长文预警)

    大厂技术  高级前端  Node进阶 点击上方 程序员成长指北,关注公众号 回复1,加入高级Node交流群 前言 最近一直比较忙, 而且自己工作中做的事也不适合写文章,所以一直没有更文.. 最近接到一 ...

  2. nest.js实战之Filter异常处理

    1.简介 nest.js内置了基础异常类HttpException,以及很多异常扩展类: BadRequestException UnauthorizedException NotFoundExcep ...

  3. nest.js实战之集成sentry

    1.简介 Sentry API用于将事件提交给Sentry收集器以及导出和管理数据.报告和Web API分别进行了版本控制. 2.安装 仓库:https://github.com/ntegral/ne ...

  4. Nest.js 实战系列第二篇-实现注册、扫码登陆、jwt认证等

    大厂技术  高级前端  Node进阶 点击上方 程序员成长指北,关注公众号 回复1,加入高级Node交流群 大家好我是考拉

  5. Nest+Vue实战:工作计划管理系统

    博客原文和更新地址:Nest+Vue实战:工作计划管理系统 前言 该项目是学习Nest.js框架所得,前端基于Vue.js + Vuex + VueRouter + ElementUI + SCSS, ...

  6. Nest.js 名词概念介绍

    目录 1. 初识 Nest.js 1.1 什么是 Nest.js 1.2 Nest.js 优点 2. Nest.js 核心概念 2.1 控制器 Controller 2.2 提供者 Provider ...

  7. Nest.js 是如何实现 AOP 架构的?

    Nest.js 是一个 Node.js 的后端框架,它对 express 等 http 平台做了一层封装,解决了架构问题.它提供了 express 没有的 MVC.IOC.AOP 等架构特性,使得代码 ...

  8. Nest.js 从零到壹系列(六):用 15 行代码实现 RBAC 0

    本文由图雀社区认证作者 布拉德特皮 写作而成,点击阅读原文查看作者掘金链接,感谢作者的优质输出,让我们的技术世界变得更加美好???? 上一篇介绍了如何使用 DTO 和管道对入参进行验证,接下来介绍一下 ...

  9. 《Ember.js实战》——2.3 计算属性

    本节书摘来自异步社区<Ember.js实战>一书中的第2章,第2.3节,作者:[挪]Joachim Haagen Skeie(乔基姆•哈根•斯基)著,更多章节内容可以访问云栖社区" ...

最新文章

  1. import是引进外部函数吗_你必须要知道的Python中的main函数
  2. linux常用高级命令,Linux常用高级文件操作命令
  3. 第十五章 Python和Web
  4. PJSIP学习笔记——PJSUA层发起呼叫的主要流程
  5. 数据结构之图:有向图的介绍与实现,Python代码实现——25
  6. linux运维平台工具,Linux运维自动化工具 Kickstart
  7. 小程序php mysql_PHP+TP小程序授权登陆实现
  8. sql select 0 字段 某字段是不在指定的表
  9. jquery简单的选择添加下拉列表
  10. 【转载】C# ListView控件的一些用法
  11. 自动驾驶算法详解(6):Astar算法原理以及路径规划应用在python与ros平台实现
  12. 深入了解人工智能的发展现状及前景
  13. Spring Boot系列 —(一)手把手搭建 SpringBoot 项目
  14. 物理Standby数据库的文件路径转换(1)
  15. cms07——单页模版制作教程
  16. 吴裕雄--天生自然 诗经:声声慢·寻寻觅觅
  17. 用Python实现表白代码 抖音最火的整蛊表白小程序如何做出来的
  18. 用计算机四舍五入偷银行储户的钱,银行家舍入VS四舍五入(下):.NET发现之旅(四)...
  19. 处理亚马逊差评的几个方法
  20. Android模糊查询(首字母、简拼、全拼,汉字)

热门文章

  1. TeeChart.v8.01安装
  2. CAN-TP 网络层参数解析(N_Ar,N_As,STmin,BS等)
  3. 7-1 温度转换 (100 分) 摄氏温度/华氏温度
  4. 首页 个人简历,个人主页,个人介
  5. 当下最流行的10大H5前端框架
  6. GitHub Actions实现自动打包生成apk
  7. 数学知识 泰勒展开式
  8. 深度学习论文笔记:Fast R-CNN
  9. linux脚本获取日期格式,关于shell脚本中的bash:yyyy-mm-dd格式日期
  10. 偷听李开复“内心的声音”