首页 > 解决方案 > 来自 class-validator 的 @MaxDate 无法在 Nestjs 中按预期工作

问题描述

我没有很多使用 Nodejs/Nestjs 开发的经验。我正在开发一个 REST API,其中一个端点接收带有生日属性的用户正文。

我想验证出生日期总是在当天之前。这是我的代码片段:

import { IsString, IsDateString, MaxDate } from 'class-validator';

export class CreateUserDto {
  @IsString()
  readonly username: string;

  @IsDateString()
  @MaxDate(new Date())
  readonly dateofbirth: Date;
}

这是我的实体:

import { Entity, Column, PrimaryColumn } from 'typeorm';

@Entity()
export class User {
  @PrimaryColumn()
  username: string;

  @Column()
  dateofbirth: Date;
}

但是,在发出 POST 请求时,我总是会遇到同样的错误并且不明白为什么: {"statusCode":400,"message":["maximal allowed date for dateofbirth is Mon Nov 01 2021 12:20:11 GMT+0000 (Western European Standard Time)"],"error":"Bad Request"}

感谢您的帮助和时间。

标签: node.jsnestjsclass-validator

解决方案


@Type(() => Date)我从添加到 dateofbirth时解决了这个问题class-transformer


推荐阅读