nestjs: @Transform не вступает в силу в сущности typeorm?

#nestjs

#nestjs

Вопрос:

Когда объект результата запроса [] возвращается непосредственно из контроллера, @Transform, определенный в объекте, может вступить в силу в обычном режиме, но при возврате таких данных, как {datalist: Entity[]} , обнаруживается, что метод в @Transform не выполняется
[Google Translate ~]

сущность

 import { Transform } from 'class-transformer';
import {CreateDateColumn, Entity} from 'typeorm';

@Entity({ name: 't_articles' })
export class ArticleEntity {
 ...
  @Transform((v) => {
    console.log(123);
    return new Date(v).toLocaleString();
  })
  @CreateDateColumn()
  create_time: Date;
 ...
 }
 

контроллер

 const [datalist, count] = await this.articleRepository.findAndCount({skip, take, where});
return datalist // ===> transformed
return {datalist} // ===> untransformed, and '123' is not printed
 

Ответ №1:

Если вы используете NestJS, убедитесь, что у вас есть:

     app.useGlobalPipes(
        new ValidationPipe({
            transform: true
        })
    );
 

Комментарии:

1. Поскольку они указывают NestJS в заголовке, теле и тегах, вполне очевидно, что они используют NestJS.