一尘不染

如何从控制器JSON返回的值中排除实体字段。NestJS + Typeorm

node.js

我想从返回的JSON中排除密码字段。我正在使用NestJS和Typeorm。

针对此问题提供的解决方案不适用于我或NestJS。如果需要,我可以发布我的代码。还有其他想法或解决方案吗?谢谢。


阅读 941

收藏
2020-07-07

共1个答案

一尘不染

我建议创建一个利用class-transformer库的拦截器:

@Injectable()
export class TransformInterceptor implements NestInterceptor {
  intercept(
    context: ExecutionContext,
    call$: Observable<any>,
  ): Observable<any> {
    return call$.pipe(map(data => classToPlain(data)));
  }
}

然后,只需使用@Exclude()装饰器排除属性,例如:

import { Exclude } from 'class-transformer';

export class User {
    id: number;
    email: string;

    @Exclude()
    password: string;
}
2020-07-07