gpt4 book ai didi

node.js - NodeJS 将 Dtos 映射到 TypeORM 实体

转载 作者:搜寻专家 更新时间:2023-10-31 23:40:00 25 4
gpt4 key购买 nike

我有一个 nodejs REST API 后端运行 nestjs 框架,使用 typeORM 作为我实体的 ORM .

来自 C#/Entity Framework 背景,我非常习惯将我的 Dto 映射到数据库实体。

typeORM 有类似的方法吗?

我看到了 automapper-ts图书馆,但 map 声明中的那些魔法字符串看起来有点可怕......基本上,如果我能的话,那就太棒了:

let user: TypeORMUserEntity = mapper.map<TypeORMUserEntity>(userDto);

在 nodejs/typeorm 后端环境中执行此操作(或具有相同结果的任何替代方法)的方法是什么?

最佳答案

您可以使用 class-transformer图书馆。您可以将它与 class-validator 一起使用转换和验证 POST 参数。

例子:

@Exclude()
class SkillNewDto {
@Expose()
@ApiModelProperty({ required: true })
@IsString()
@MaxLength(60)
name: string;

@Expose()
@ApiModelProperty({
required: true,
type: Number,
isArray: true,
})
@IsArray()
@IsInt({ each: true })
@IsOptional()
categories: number[];
}

ExcludeExpose 这里来自 class-transform 以避免额外的字段。

IsStringIsArrayIsOptionalIsIntMaxLength 均来自 类验证器

ApiModelProperty 用于 Swagger 文档

然后

const skillDto = plainToClass(SkillNewDto, body);
const errors = await validate(skillDto);
if (errors.length) {
throw new BadRequestException('Invalid skill', this.modelHelper.modelErrorsToReadable(errors));
}

关于node.js - NodeJS 将 Dtos 映射到 TypeORM 实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51113506/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com