问题标签 [class-transformer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5455 浏览

serialization - 如何在使用 Typegoose 获取数据时使用 class-transformer 序列化嵌套 js 响应?

我一直在尝试使用 Typegoose 使用类转换器库来完成 Mongodb 的序列化部分的 NestJs 示例。https://docs.nestjs.com/techniques/serialization中给出的示例仅显示了如何在 TypeORM 中使用序列化。我对 Typegoose 遵循了相同的过程。这是我到目前为止所尝试的。

我尝试使用 id 在 Get() 上运行 API 调用,但breed我没有从响应中排除,而是得到了以下响应。

谁能帮我正确地序列化响应?

0 投票
1 回答
7096 浏览

typescript - class-transformer Exclude undefined properties

Exclude undefined or null properties from the class. this is actual nature but I need a decorator who can ignore this

0 投票
1 回答
923 浏览

typescript - classToPlain 转换不适用于路由控制器

关于类转换器和路由控制器的使用。
也许是我不明白 class-transformer lib 的真正含义,但我想用它来转换从服务器(第三方)接收到的对象并将它们适应我自己的模型,使用不同的名称。理论上哪个应该有效,并且在 console.log-ing 新转换模型时,甚至在 JSON.stringify-ing 时有效。
但是由于某种原因,当使用路由控制器输出模型时,它只是输出相同的源对象。

用户等级:

用户控制器.ts:

控制台输出预期值:

但是来自用户控制器(通过路由控制器库)的响应是:

你看到我可能遗漏/做错了什么吗?谢谢。

0 投票
1 回答
2933 浏览

typescript - 如果未定义,则扩展类转换器转换函数以转换可选值

目前我使用class-transformer包将可选值转换为默认值

并且出现了两个问题。

  • 对于不同的类型,我必须多次使用此转换逻辑
  • 我想让它可用于代码覆盖率报告

所以基本上我想创建一个将可选值转换为默认值的函数,我目前的方法:

Transform现在我可以在装饰器中使用这个功能

但正如你所看到的,这不值得付出努力。有没有办法可以创建自己的转换装饰器以及class-validator转换class-transformer可选值?

我的自定义装饰器应该是这样的

0 投票
1 回答
2224 浏览

node.js - NestJS > TypeORM 将复杂实体映射到复杂 DTO

我使用 class-transformer > plainToClass(entity, DTO) 将实体映射到 DTO

我还实现了此处描述的关联 transform.interceptor 模式。

然后我@Expose()在我的 DTO 成员上使用。这很好用,但我有一个限制,我需要在我的父 DTO 中映射成员 DTO,但这没有发生,请参见下面的简单示例

现在,如果我跑步,plainToClass(parentEntityFromDB, ParentDTO)我希望得到以下信息

但是,我得到的是

基本上 plainToClass(entity, DTO) 不会自动映射成员以匹配给定的 DTO 类型。

有没有办法做到这一点,或者这是方法的限制?

谢谢

0 投票
1 回答
595 浏览

typescript - 在nestjs中使用类验证器验证环境变量?

如何通过nestjs中的类验证器验证我的环境变量?官方文档中没有示例,只有joi。但是对于 DTO,您几乎可以使用类验证器,因为接口不会在运行时编译等。而且我不想在我的应用程序中使用两个不同的验证器。

0 投票
1 回答
664 浏览

typescript - 受歧视工会的阶级转变

我玩过routing-controllers它,它是内置的类转换器能力。我试图构建一个界面,我可以在其中执行基于 alocation idlocation coordinate. 所以我打算使用一个有区别的联合作为一个身体参数并且不能让它工作。(请参阅最后一个控制台输出,我所说的“不工作”是什么意思)

举个例子:

有没有办法做到这一点?

0 投票
2 回答
1728 浏览

node.js - 如何在验证 DTO 之前 JSON 解析密钥?

我是 NestJs 的新手。我在正文中有一个传入字段,我需要在 DTO 中对其进行验证之前对其进行 JSON.parse。

控制器

DTO

0 投票
1 回答
1961 浏览

typescript - Nestjs-从实体类创建自定义 json 响应

我正在使用 typeorm 和 MySQL。我的实体存储不同类型的运动数据,例如 Football、Athletics->100m、200m、400m。

在 get 调用中,我希望按 gameType 分组数据,即田径或足球,并希望创建嵌套 JSON,如下所示

JSON 格式: {

我的实体类是这样的:

在服务中,我编写了这样的代码来获取竞争表中的所有数据

获取结果表单数据库后,我想按游戏类型列分组数据并将其作为嵌套 json 发送。

请指导我

谢谢你们

0 投票
1 回答
2413 浏览

typescript - class-transformer 的 plainToClass:如何使用此函数将普通文字转换为抽象类?

每当我这样调用 plainToClass 时:

一切都很好。但是一旦我将 SomeClass 更改为抽象并将上面的内容重写为:

我得到错误:

不可能使用plainToClass 将plain 转换为abstractClass 实例吗?为什么不?