nest.js实战之Interceptor转换响应

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 16:41   3198   0

 

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
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP