使用数据转换拦截器,这个感觉可以用来统一数据字段啥的,毕竟仅靠人为控制,不够绝对可控
This commit is contained in:
parent
ad0359f4f4
commit
d56b4f21db
|
@ -1,9 +1,18 @@
|
|||
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 implements NestInterceptor {
|
||||
intercept(context: ExecutionContext, next: CallHandler): Observable<any> {
|
||||
return next.handle();
|
||||
export class TransformInterceptor<T> implements NestInterceptor<T, Response<T>> {
|
||||
intercept(context: ExecutionContext, next: CallHandler): Observable<Response<T>> {
|
||||
return next
|
||||
.handle()
|
||||
.pipe(
|
||||
map(item => ({data: item})) // 这个map和js那个map貌似还是有点不一样,那边返回的是一个数组呀?
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ import { DemoFilter } from '../../core/filters/demo.filter'
|
|||
import { DemoAuthGuard } from '../../core/guards/demo-auth.guard'
|
||||
import { Roles } from '../../core/decorators/roles.decorator'
|
||||
import { LoggingInterceptor } from '../../core/interceptors/logging.interceptor'
|
||||
import { TransformInterceptor } from '../../core/interceptors/transform.interceptor'
|
||||
|
||||
@Controller('posts')
|
||||
// @UseGuards(DemoAuthGuard)
|
||||
|
@ -15,6 +16,7 @@ export class PostsController {
|
|||
constructor(private readonly demoService: DemoService) {}
|
||||
|
||||
@Get()
|
||||
@UseInterceptors(TransformInterceptor)
|
||||
index() {
|
||||
return this.demoService.findAll();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue