小编Dav*_*ael的帖子

NestJS从snake_case序列化到camelCase

我想为 NestJS 控制器实现 JSON 请求/响应正文的自动序列化/反序列化,准确地说,自动将snake_case请求正文 JSON 键转换为camelCase在我的控制器处理程序处接收,反之亦然。

我发现使用class-transformer's @Expose({ name: 'selling_price' }),如下例所示(我正在使用 MikroORM):

// recipe.entity.ts
@Entity()
export class Recipe extends BaseEntity {
  @Property()
  name: string;
  
  @Expose({ name: 'selling_price' })
  @Property()
  sellingPrice: number;
}
Run Code Online (Sandbox Code Playgroud)
// recipe.controller.ts
@Controller('recipes')
export class RecipeController {
  constructor(private readonly service: RecipeService) {}

  @Post()
  async createOne(@Body() data: Recipe): Promise<Recipe> {
    console.log(data);
    return this.service.createOne(data);
  }
}
Run Code Online (Sandbox Code Playgroud)
// example request body
{
    "name": "Recipe 1",
    "selling_price": 50000
}
Run Code Online (Sandbox Code Playgroud)
// log on the RecipeController.createOne …
Run Code Online (Sandbox Code Playgroud)

serialization nestjs class-transformer mikro-orm

6
推荐指数
1
解决办法
9281
查看次数