【问题标题】:Validate response format in NestJs在 NestJs 中验证响应格式
【发布时间】:2021-02-05 13:44:56
【问题描述】:

我想验证 NestJs 中的响应,以便它们可以具有严格的格式。

例如,当从数据库中获取用户时,密码字段不应该在响应对象中。 我可以在发送之前删除用户中的密码属性,但我想知道有没有办法验证响应对象并在将它们发送到客户端之前对其进行转换?

在这种情况下,转换意味着使用 DTO 和 class-validator / class-transformer 之类的东西自动删除任何额外的属性,例如密码。

【问题讨论】:

    标签: nestjs


    【解决方案1】:

    听起来您想使用 Nest 的 ClassSerializationInterceptor。只要您从控制器返回的对象是一个用class-transformer 装饰器装饰的类实例,拦截器就会在其上运行classToPlain(),并将结果放回纯JSON,同时剥离您告诉它的任何内容。

    【讨论】:

    • 我知道这是预期的答案,但您提出的解决方案不是验证响应对象...
    • 你是对的,它不是,但是可以扩展拦截器并使用class-validator 中的validate 在序列化结果和问题之前进行验证,如果你阅读它是关于确保不发回一个字段,由序列化处理
    猜你喜欢
    • 1970-01-01
    • 2020-05-28
    • 2016-05-07
    • 2020-05-19
    • 2011-04-30
    • 2021-02-09
    • 2023-02-03
    • 2020-01-09
    • 2018-05-21
    相关资源
    最近更新 更多