当前位置: 首页 > 面试题库 >

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

柯唯
2023-03-14
问题内容

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

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


问题答案:

我建议创建一个利用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;
}


 类似资料:
  • 我有一个MongoDB存储用户信息,包括用户的密码。用户可以调用GET请求从数据库中检索用户的所有信息。但我不想让客户看到密码,只是其他一切。 在这里,客户机可以获得用户的个人信息,只要他有他的用户名:

  • 问题内容: 我正在做一个MVC应用程序,我需要从控制器传递json对象才能查看。 上面的代码是我在控制器中使用的,现在当我部署视图页面时,在浏览器中打开一个下载对话框,打开文件时,它会为我提供json对象作为我需要的格式。 现在我想返回我的视图页面,也想访问视图页面中的json对象。我怎样才能做到这一点。 问题答案: 在执行此操作时,您明确地告诉MVC 不要使用view 并提供序列化的JSON数据

  • 我一直在思考使用Spring MVC设计JSON API的最佳方法。众所周知,IO很昂贵,因此我不想让客户端进行多次API调用以获得他们需要的东西。然而,与此同时,我不一定想归还厨房水槽。 例如,我正在开发一个类似于IMDB的游戏API,但用于视频游戏。 如果我返回与游戏相关的所有内容,它将看起来像这样。 /api/game/1 然而,他们可能不需要所有这些信息,但他们可能需要这些信息。从I/O和

  • 让我们看看下面这个简单的测试控制器(与Spring 4.0.3一起使用): 理论上,两个控制器方法都应该返回有效的JSON。调用第一个controller方法确实会返回以下JSON数组: 但第二个controller方法返回不带引号的字符串,该字符串不是有效的JSON字符串: 为什么会这样?可以配置吗?是虫子吗?还是一个我不懂的特征?

  • 我将这个方法设置为从Spring Boot rest控制器返回一个响应: 这是DAO方法: 我成功地拥有一个json对象作为响应,但格式如下: 当我期待有: 为什么将结果集插入到< code>#result-set-1键中?我如何改变这种行为?

  • 我使用的是spring data jpa,我有一个实体,代码如下: 我使用org . spring framework . data . JPA . repository . JPA repository进行相关的CRUD操作。 当我第一次保存实体(例如creationTimestamp=1)时,方法保存(实体)返回保存的实体(如javadoc所说),其中包含用于进一步操作的新id(如javado