问题标签 [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 投票
1 回答
299 浏览

node.js - 使用类验证器验证对象

我正在尝试验证传递的对象是否属于某种类型。

国家对象

验证码

@Type 是从 class-transformer 导入的

这是在堆栈溢出的许多问题中找到的答案。例如:类验证器-验证对象数组。它对我不起作用。这是针对单个对象而不是对象数组。

0 投票
0 回答
114 浏览

mongodb - 使用 class-validator 和 NestJS 使用点语法验证嵌套对象

当我尝试更新嵌套对象的特定道具时,我在验证嵌套对象时遇到问题,例如:

如果我尝试像{ "nested.propA": "test" }我一样传递一个虚线键,则会收到以下错误

一个最简单的解决方案是在父对象中添加虚线键,例如:

通过这种方法,我可以同时传递整个对象和单个道具,但这对我来说似乎真的是多余的。

使用“点”语法进行验证的任何其他方式?db 是mongo点语法可用于更新嵌套对象的特定道具的地方。

谢谢。

0 投票
1 回答
65 浏览

javascript - 打字稿任何 | any[] 作为函数参数

我一直在使用一些验证中间件,我想扩展它以允许类(any)和数组(any[])作为输入。类类型被用作输入参数,我已经能够成功地将函数更改为接受数组类型。当我尝试允许这两种类型并将输入提供给函数时,就会出现问题。如下

如果我将类作为输入,此函数将编译,但在给定数组时会失败;

如果我修改函数只接受数组(类型:any[]),则函数在运行时会成功。我还没有找到一种将输入类型键入为数组以允许函数接受这两种数据类型的方法。

将 CreateObjectDto[] 声明为函数的输入参数的方法是什么?或者如何更改函数签名以使其成功确定输入字符串是否包含类型或类型数组?

谢谢。

0 投票
1 回答
26 浏览

nested - 带有 typeorm 的 nestJS:当实体嵌套时,@Expose 不起作用

我的项目中,有两个实体;ProfileProject

实体Project具有字段“collaborators”,它是Profile. ->代码

EntityProfile有两个@Expose字段,“昵称”和“id”,当我调用 GET Profile API 时,这两个字段显示得很好。->代码 -> 查看dev.colact.io/api/profiles/8的结果。

但是,当我调用 GET Project API 时,暴露的字段“昵称”和“id”不会出现在“合作者”中。-> 查看dev.colact.io/api/projects/72的结果。

我已经尝试了 2 种解决方案,但没有按我的意愿工作。

首先,我尝试将 @Type(() => Profile) 添加到Project实体中的“协作者”,但没有区别。

其次,我认为 join 只能工作到collaborators,所以需要collaborators.user像下面这样加入。

然而,这一次,“昵称”和“id”并没有出现在合作者身上。相反,嵌套的用户对象作为一个整体出现了。

有人可以帮忙吗?

0 投票
0 回答
33 浏览

javascript - 在响应 DTO 中公开自定义 getter 不起作用

我试图定义一个这样的自定义吸气剂:

这就是我改变它的方式:

如此处文档中所述:https ://github.com/typestack/class-transformer#exposing-getters-and-method-return-values

然而,回应只是:

我不确定我到底做错了什么,但我缺少“thisIsATest”属性。

0 投票
1 回答
224 浏览

node.js - 类转换器不起作用:未调用转换函数

我尝试使用类转换器,但我做不到。我还使用 type-graphql 和 @typegoose/typegoose 这是我的代码:

我的装饰器

我的输入类型

我的解析器

我的实体

我的请求

问题是console.log('value: ', value)内部的 Transform 函数永远不会被调用,我的电子邮件也没有被修剪。

console.log('DECORATOR')当我发出请求时也不会调用,而只是在服务器启动时调用一次。

谢谢 !

0 投票
1 回答
50 浏览

graphql - 如何使用@nestjs/graphql 清理/序列化输入数据

我正在使用 graphql 开发 NestJs 应用程序,并且我正在尝试使用类转换器清理我的解析器输入,如下所示:

但是永远不会执行转换内容。

如何使用 InputType 中的装饰器正确消毒?

0 投票
1 回答
60 浏览

nestjs - Exclude() 方法不适用于 Nestjs 中的 post 方法

我尝试添加toJSON(){return classtoPlain(this)}我的实体仍然无法正常工作。这是我的控制器

这是我的实体

这是我的服务

我尝试了很多解决方案,但仍然没有任何效果。对于 GET 它的工作,但对于发布它的显示密码字段。如果有人可以提供任何解决方案,那就太好了。

0 投票
1 回答
75 浏览

javascript - NestJS中的“enableImplicitConversion”和“transform”有什么区别

我想知道这之间有什么区别

从文档中我不太明白在什么情况下我必须使用哪个。

https://docs.nestjs.com/techniques/validation https://github.com/typestack/class-transformer

0 投票
1 回答
96 浏览

typeorm - Typeorm 使用类转换器更改表中的值

我将 Nest.js 与 Typeorm 和库一起使用class-transformer

我正在尝试产生这样的想法:1/01-2022. 但我仍然只有一个数字,例如1(没有日期)。

如何将日期添加到增量值?