问题标签 [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.
javascript - 如何在类转换器上获取无效类型/类型不匹配的警告/错误列表
类转换器库提供了将 json 格式的普通 javascript 对象转换为 ES6 类的函数
但是我看到当json对象中的类型和类中定义的类型不匹配时它不会抛出任何错误
该类如下所示
在 myclass2 上,它可以正常工作,因为 age(23) 是一个数字。但在 myclass1 中,年龄设置为“abc”,不能转换为类中定义的数字类型。然而,代码通过没有任何错误。
在控制台日志中,您可以看到虽然年龄的类型已经明确定义,但年龄的值仍然可以设置为字符串。
控制台日志图像在这里(我没有足够的 RP 点来附加一个 url,它是一个新帐户)
我的问题是如何获得有关此类不匹配的警告/错误列表。
谢谢您的帮助。
node.js - Typescript - 使用 Class-transformer 扁平化 JSON 模型
我正在尝试在打字稿(node.js)中使用类转换器: https ://github.com/typestack/class-transformer
我想仅使用 1 个模型来扁平化 JSON,1 个 Dto 将进入数据库
如果我有以下 json :
数据库服务应接收以下对象:
这是我试图定义但它不起作用:
测试字段的结果未定义我该如何实现?我不想创建一个“中介”模型
javascript - typescript.-如何使用类验证器和类转换器(Nestjs)验证子类中的特定字段
我正在尝试使用类验证器和类转换在 Nestjs 中使用基本调用
我有一个基类如下:
现在我有一项服务应该让 childDto
现在我想要一个仅包含“名称”并在控制器或服务中验证的 dto
class childDto extends BaseClass{}
我如何确保只使用“名称”字段,创建另一个带有代码重复的 dto
并确保验证在每个特定的 DTO 下工作
谢谢
validation - NestJS 在 DTO 创建期间执行验证之前使用 ValidationPipe 转换属性
我使用内置的 NestJS ValidationPipe 以及 class-validator 和 class-transformer 来验证和清理入站 JSON 正文有效负载。我面临的一种情况是入站 JSON 对象中大小写属性名称的混合。我想纠正这些属性并将其映射到我们新的 TypeScript NestJS API 中的标准驼峰模型,这样我就不会将遗留系统中的不匹配模式与我们的新 API 和新标准结合起来,主要是使用 @Transform 中的DTO 作为应用程序其余部分的隔离机制。例如,入站 JSON 对象的属性:
应该映射到
我想使用@Transform 来完成此操作,但我认为我的方法不正确。我想知道是否需要编写自定义 ValidationPipe。这是我目前的方法。
控制器:
测试我模型:
TestMeRequestDto:
用于 POST 到控制器的示例有效负载:
我遇到的问题:
- 转换似乎没有效果。类验证器告诉我这些属性中的每一个都不能为空。例如,如果我将“propertyone”更改为“propertyOne”,那么类验证器验证对于该属性来说是可以的,例如它会看到值。其他两个属性也一样。如果我将它们骆驼化,那么类验证器会很高兴。这是在验证发生之前转换未运行的症状吗?
- 这个很奇怪。当我调试和评估 TestMeRequestDto 对象时,我可以看到 simpleModel 属性包含一个包含属性名称“sometestproperty”的对象,即使 TestMeModel 的类定义有一个驼峰式“someTestProperty”。为什么 @Type(() => TestMeModel) 不尊重该属性名称的正确大小写?“test4”的值存在于该属性中,因此它知道如何理解该值并分配它。
- 仍然很奇怪,TestMeModel 上的“someTestProperty”属性的@IsNotEmpty() 验证没有失败,例如它看到“test4”值并感到满意,即使示例 JSON 有效负载中的入站属性名称是“sometestproperty” ,都是小写。
来自社区的任何见解和指导将不胜感激。谢谢!
nestjs - 在 class-transformer 中执行隐式转换之前获取一个值
我正在尝试将 GET 参数转换为布尔值。我正在使用带有类验证器和类转换器的 NestJS。我已经在验证器管道选项中设置enableImplicitConversion
了。true
现在的问题是,GET 参数的值始终是字符串,因此隐式转换将始终将其转换为true
. 我可以通过运行自定义逻辑来阻止它,但是在我可以运行任何自定义逻辑(即@Transform 装饰器)之前执行隐式转换。
有没有办法在它被转换之前获得价值?
或者,还有其他方法可以实现我想要实现的目标吗?(例如,禁用属性的隐式转换等)
graphql - GraphQL 中 ClassSerializerInterceptor 的 NestJS 问题
我正在尝试使用class-transformer和NestJS。我正在构建一个基于 Mongoose 和 GraphQL 的 API。这就是我在我的 GraphQL 对象之一中使用 Exclude 装饰器的方式:
这是我在 UserResolver 中与ClassSerializerInterceptor一起使用的方法:
我想要做的是从这个突变用户字段中获取没有密码(在 GraphQL 对象中排除)。但不幸的是,所有字段都是空的。来自 GraphQL 游乐场的错误示例:
教师对象:
没有拦截器,一切正常(除了密码仍然可见)。任何想法我做错了什么?
javascript - how to identify a child object by class-transformer ? | Nest.js
I am trying to parse a json body to a JavaScript object with the library "class-transformer" but he doesn't recognize my child objects.
This is the json file:
There are my DTOs:
And this my line of code:
I succeeed in gettting my first object from ShopEntity but the tab shops is undefined.
nestjs - Nestjs - 验证和转换查询参数
我已经定义了一个 DTO 来验证和转换传入的查询参数。
我已经在main.ts
.
但它返回错误请求错误 -skip must be an integer number
使用此查询:
控制器
我不确定我在这里做错了什么。希望能在这方面得到任何帮助。
更新
ScrollingDTO
是从作为节点模块安装的第三方库导入的。如果我只是将课程带入我的应用程序,那么它就可以工作。
reactjs - 具有 enableImplicitConversion 的类转换器/类验证器在 ReactJS 中无法按预期工作
我希望使用 class-transformer / class-validator 将表单值转换为 UI 中的正确类型。它适用于我的服务器应用程序,但不适用于 React。有人可以帮忙吗?
预期输出(在服务器应用程序中工作)
ReactJS 中的输出
此代码在这里工作正常:https ://codesandbox.io/s/workshere-c4wek?file=/src/index.ts:0-341
但在反应应用程序的上下文中不起作用:https ://codesandbox.io/s/not-working-q80uy?file=/src/App.tsx