首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以在响应体上使用ValidationPipe和whiteList?

是否可以在响应体上使用ValidationPipe和whiteList?
EN

Stack Overflow用户
提问于 2021-02-16 17:19:35
回答 1查看 1.7K关注 0票数 1

我希望防止在NestJs服务器的响应上返回对象键值(并在示例中使用TypeOrm实体)

例如,我想确保用户的密码永远不会发送给任何客户端:

user.entity.ts:

代码语言:javascript
复制
@Entity()
export class User extends BaseEntity {
  @PrimaryGeneratedColumn()
  id: number;

  @Column()
  password: string;
}

user.controller.ts:

代码语言:javascript
复制
  @Get('')
  getAllUsers(): Promise<User[]> {
      return this.userService.getAll(); // expected: [{id: 1}], actual: [{id: 1, password: '1234'}]
  }

可以使用类验证器管道为请求主体实现的I:

代码语言:javascript
复制
  new ValidationPipe({
      whitelist: true
  })

user.dto.ts:

代码语言:javascript
复制
export class UserDto {
  @Allow()
  id: number;

  password: string;
}

这种类型的密钥过滤是否可能与ValidationPipe?有其他优雅的解决方案吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-16 17:54:53

AFIK ValidationPipe用于验证传入的请求。

您应该定义一个序列化拦截器来正确删除不想返回的键。使用此设置,您不需要验证该DTO。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66229110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档