首页 > 其他分享 >小满nestjs(第十六章 nestjs 响应拦截器)

小满nestjs(第十六章 nestjs 响应拦截器)

时间:2023-01-17 14:37:35浏览次数:57  
标签:拦截器 函数 ts 小满 nestjs import data


拦截器

拦截器具有一系列有用的功能,这些功能受面向切面编程(AOP)技术的启发。它们可以:

  • 在函数执行之前/之后绑定额外的逻辑
  • 转换从函数返回的结果
  • 转换从函数抛出的异常
  • 扩展基本函数行为
  • 根据所选条件完全重写函数 (例如, 缓存目的)

我们现在没有给我们的Nestjs 规范返回给前端的格式现在比较乱

小满nestjs(第十六章 nestjs 响应拦截器)_java

 我们想给他返回一个标准的json 格式 就要给我们的数据做一个全局format

{
data, //数据
status:0,
message:"成功",
success:true
}

新建common 文件夹 创建 response.ts

小满nestjs(第十六章 nestjs 响应拦截器)_函数返回_02

 Nest Js 配合 Rxjs 格式化数据

import { Injectable, NestInterceptor, CallHandler } from '@nestjs/common'
import { map } from 'rxjs/operators'
import {Observable} from 'rxjs'



interface data<T>{
data:T
}

@Injectable()
export class Response<T = any> implements NestInterceptor {
intercept(context, next: CallHandler):Observable<data<T>> {
return next.handle().pipe(map(data => {
return {
data,
status:0,
success:true,
message:"牛逼"
}
}))
}
}

在main.ts 注册

app.useGlobalInterceptors(new Response())

小满nestjs(第十六章 nestjs 响应拦截器)_开发语言_03

 

小满nestjs(第十六章 nestjs 响应拦截器)_数据_04

标签:拦截器,函数,ts,小满,nestjs,import,data
From: https://blog.51cto.com/u_13463935/6017246

相关文章

  • 小满nestjs(第十八章 nestjs 管道转换)
    管道可以做两件事1.转换,可以将前端传入的数据转成成我们需要的数据2.验证类似于前端的rules配置验证规则我们先来讲一下转换Nestjs提供了八个内置转换API​​Validatio......
  • 小满nestjs(第二十二章 nestjs 自定义装饰器)
    在Nestjs中我们使用了大量装饰器decorator,所以Nestjs也允许我们去自定义装饰器。 案例1自定义权限装饰器生成装饰器 nestgd[name]import{SetMetadata}from'@......
  • 小满nestjs(第二十章 nestjs 爬虫)
    其实爬虫是一个对计算机综合能力要求比较高的技术活。首先是要对网络协议尤其是 ​​http​​ 协议有基本的了解,能够分析网站的数据请求响应。学会使用一些工具,简单的情......
  • 小满nestjs(第十九章 nestjs 管道验证DTO)
    1.先创建一个pipe验证管道nestgpi文件名字 创建好之后的 2.安装验证器npmi--saveclass-validatorclass-transformerimport{IsNotEmpty,IsString}from'class-va......
  • 小满nestjs(第十七章 nestjs 异常拦截器)
    上一章我们讲了全局响应拦截,这一章我们来讲一下全局异常拦截器common下面新建filter.ts让我们创建一个异常过滤器,它负责捕获作为​​HttpException​​​类实例的异常,并为它......
  • 小满nestjs(第二十三章 nestjs swagger接口文档)
    swagger用于提供给前端接口文档安装命令如下npminstall@nestjs/swaggerswagger-ui-express在main.ts注册swaggerasyncfunctionbootstrap(){constapp=awaitNe......
  • 小满Vue3第四十六章(Proxy跨域)
    1.首先我们先了解一下什么是跨域主要是出于浏览器的同源策略限制,它是浏览器最核心也最基本的安全功能。当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不......
  • 小满nestjs(第二十七章 nestjs typeOrm关系)
    在我们开始的过程中,肯定不会把数据存在一个表里面,我们会进行分表,把数据分开存,然后通过关联关系,联合查询。typeOrm文档 ​​一对一|TypeORM中文文档​​前端代码还是复......
  • 小满Vue3第四十五章(Vue3 Web Components)
    什么是 WebComponentsWebComponents提供了基于原生支持的、对视图层的封装能力,可以让单个组件相关的javaScript、css、html模板运行在以html标签为界限的局部环境中,不......
  • 小满nestjs(第二十五章 nestjs 实体)
    什么是实体实体是一个映射到数据库表的类。你可以通过定义一个新类来创建一个实体,并用​​@Entity()​​来标记:import{Entity,Column,PrimaryGeneratedColumn}from'type......