前文参考:
NestJS入门1:创建项目
NestJS入门2:创建模块
NestJS入门3:不同请求方式前后端写法
NestJS入门4:MySQL typeorm 增删改查
NestJS入门5:加入Swagger
NestJS入门6:日志中间件
NestJS入门7:增加异常过滤器
本文代码基于前文《NestJS入门7:增加异常过滤器》上修改
1. 未使用拦截器效果
2. 拦截器安装
nest g interceptor common/interceptor/transform
安装产生了两个文件
3. 修改transform.interceptor.ts
将 transform.interceptor.ts
修改为:
import { CallHandler, ExecutionContext, Injectable, NestInterceptor } from '@nestjs/common';
import { Observable } from 'rxjs';
import { map } from "rxjs/operators";
export interface Response<T> {
data: T;
}
@Injectable()
export class TransformInterceptor<T>
implements NestInterceptor<T, Response<T>>
{
intercept(
context: ExecutionContext,
next: CallHandler
): Observable<Response<T>> {
return next
.handle()
.pipe(map((data) => ({ code: 200, data, describe: "请求成功" })));
}
}
4. main绑定拦截器
main.ts增加语句
app.useGlobalInterceptors(new TransformInterceptor());