javascript - 在可序列化的 dto 上嵌套自定义名称
问题描述
使用nestjs HttpModule(使用axios)时如何更改请求值的名称?
DTO 示例:
export class UserRequest {
firstName: string;
}
但 API 期望first_name
作为 json 中的键。
解决方案
您可以使用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
推荐阅读
- java - 在列表中添加项目后无法更新 JCombobox
- javascript - 如何使用 ClickUp API 从列表中获取所有已关闭的任务?
- python - 如何仅在某些行或条件上在 Python 中应用 str.split?
- firebase - 当我从 firebase 获取结果时,如何解决这个颤振飞镖运行错误?
- mysql - 有没有一种简单的方法可以将 Oracle 脚本转换为 MySQL
- data-structures - 是否应该对 B+Tree 中的数据进行排序,一次应该加载多少数据?
- c - 读取 4 位数据
- python - PyQt5 插槽混乱,除非使用静态或部分,否则无法连接?
- r - 如何使用 purrr 替换 R 中的修改 for 循环?
- printing - 为什么 Google colaboratory 停止打印?