【问题标题】:Nest custom name on serializable dto在可序列化的 dto 上嵌套自定义名称
【发布时间】:2021-02-03 19:42:38
【问题描述】:

使用nestjs HttpModule(使用axios)时如何更改请求值的名称?

DTO 示例:

export class UserRequest {
    firstName: string;
}

但 API 期望 first_name 作为 json 中的键。

【问题讨论】:

    标签: javascript axios nestjs


    【解决方案1】:

    您可以使用class-transformer 包。它包含一个 @Expose 装饰器,您可以装饰您的属性并提供一个名称以将属性公开为。

    import { serialize, Expose } from "class-transformer";
    
    export class UserRequest {
      @Expose({ name: "first_name" })
      firstName: string;
    }
    
    const userRequest: UserRequest = new UserRequest();
    userRequest.firstName = "John";
    
    const serializedRequest = serialize(userRequest);
    console.log(serializedRequest);
    

    上面会产生一个序列化的json字符串为....

    {
      "first_name":"John"
    }
    

    https://stackblitz.com/edit/class-transformer-expose-b1pis7

    https://docs.nestjs.com/techniques/serialization

    https://www.npmjs.com/package/class-transformer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-08
      • 1970-01-01
      • 2020-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多