typescript - NestJS 仅将 ClassSerializerInterceptor 应用于响应数据
问题描述
我对 NestJS 中的 ClassSerializationInterceptor 有疑问。现在我在返回用户数据时使用它来删除密码,就像 NestJS 文档 ( https://docs.nestjs.com/techniques/serialization ) 中给出的示例一样。当我返回用户时,密码属性被删除(这部分工作)。但是,当我创建一个新用户(并在请求正文中有密码属性)时,请求正文也会被序列化,结果是以下验证管道抱怨密码字段丢失。是否可以将此拦截器仅应用于响应数据?
我的控制器方法如下所示:
@UsePipes(new ValidationPipe({ transform: true })
@UseInterceptors(ClassSerializationInterceptor)
@Post()
async add(@Body() userData: User) {
return this.userService.addUser(userData)
}
我的用户实体如下所示:
@Entity()
@Unique['email']
export class User {
@PrimaryGeneratedColumn('uuid')
id: string;
@Column()
email: string;
@Column()
@Exclude()
password: string;
}
代码已简化,但足以重现问题/此行为。
解决方案
推荐阅读
- django - S3 的 TextFields 中的相对媒体路径
- java - How to supply value to an annotation dynamically?
- javascript - 如何组合来自多个get元素的html nodeList
- firebase - Allow access to Firebase HTTPS functions from cross domain origin
- sql - 从两个日期获取 COUNT 个 DISTINCT 月
- c++ - OpenCV Initializing Camera: Unknown query to pre-built opencv files
- python - Python 时间 Perf_Counter() 混乱
- c++ - Using OpenSSL EVP. How to Encrypt a string and save the Encrypted string, key and IV to a file? Then Open the file and Decrypt back to string?
- for-loop - Get loop value when condition is true in robotframework
- javascript - Find parent node in binary tree from value in javascript