首页 文章

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

提问于
浏览
1

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

在这个问题上提供的解决方案对我或NestJS不起作用 - > Is it possible to 'protect' a property and exclude it from select statements . 如果需要,我可以发布我的代码 . 还有其他想法或解决方案?谢谢 .

2 回答

  • 0

    你可以使用包https://github.com/typestack/class-transformer

    您可以使用装饰器排除属性,也可以使用组排除属性 .

  • 2

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

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

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

    import { Exclude } from 'class-transformer';
    
    export class User {
        id: number;
        email: string;
    
        @Exclude()
        password: string;
    }
    

相关问题