Fel*_*lin 2 typeorm angular nestjs
我的 NestJS API 返回格式为“YYYY-mm-dd”的字符串,我希望它的格式类似于“dd-mm-YYYY”,或者如果可能的话返回日期对象。
NestJS 也无法识别 Angular 何时发送日期。我是否需要以特定方式将其作为字符串发送,或者 Nest 可以转换它?
我正在寻找答案和文档一段时间,但没有找到任何
我的实体是这样的:
export class Example {
@PrimaryGeneratedColumn()
id: number;
@Column('date', { nullable: true })
date: Date;
}
Run Code Online (Sandbox Code Playgroud)
API返回的结果是这样的:
[
{
'id': '1',
'date': '2020-06-25'
}
]
Run Code Online (Sandbox Code Playgroud)
序列化
Nest 提供内置功能来帮助确保可以以简单的方式执行这些操作。拦截ClassSerializerInterceptor器使用强大的Class-transformer包来提供一种声明性且可扩展的对象转换方式。它执行的基本操作是获取方法处理程序返回的值并应用classToPlain()来自 的函数class-transformer。这样做时,它可以在实体/DTO 类上应用由类转换器装饰器表达的规则,如下所述。
转换
您可以使用@Transform()装饰器执行其他数据转换。
例如,以下构造返回 RoleEntity 的 name 属性,而不是返回整个对象。
@Transform(role => role.name)
role: RoleEntity;
您可以按如下方式修改您的代码:
import { Transform } from 'class-transformer';
export class Example {
@PrimaryGeneratedColumn()
id: number;
@Transform(x => new Date(x))
@Column('text')
date: Date;
}
Run Code Online (Sandbox Code Playgroud)
或者:
import { Type } from 'class-transformer';
export class Example {
@PrimaryGeneratedColumn()
id: number;
@Type(() => Date)
@Column('text')
date: Date;
}
Run Code Online (Sandbox Code Playgroud)
作为最佳实践,请考虑让 Angular 应用程序将日期作为Date类型发送,然后将其作为Date.
| 归档时间: |
|
| 查看次数: |
22958 次 |
| 最近记录: |