我希望防止在NestJs服务器的响应上返回对象键值(并在示例中使用TypeOrm实体)
例如,我想确保用户的密码永远不会发送给任何客户端:
user.entity.ts:
@Entity()
export class User extends BaseEntity {
@PrimaryGeneratedColumn()
id: number;
@Column()
password: string;
}user.controller.ts:
@Get('')
getAllUsers(): Promise<User[]> {
return this.userService.getAll(); // expected: [{id: 1}], actual: [{id: 1, password: '1234'}]
}可以使用类验证器管道为请求主体实现的I:
new ValidationPipe({
whitelist: true
})user.dto.ts:
export class UserDto {
@Allow()
id: number;
password: string;
}这种类型的密钥过滤是否可能与ValidationPipe?有其他优雅的解决方案吗?
发布于 2021-02-16 17:54:53
AFIK ValidationPipe用于验证传入的请求。
您应该定义一个序列化拦截器来正确删除不想返回的键。使用此设置,您不需要验证该DTO。
https://stackoverflow.com/questions/66229110
复制相似问题