mysql - 如何在 typeorm 和 Nest.js 中设置 bool 验证

标签 mysql typescript nestjs typeorm

我通过 nest.jstypeorm 开发了应用程序。该实体的验证如下。

我对 bool 验证有一些疑问。

event.dto.ts

export class EventRequest {
    @IsInt()  
    id: number;
    
    @IsInt()
    userId: number;
    
    @IsString()
    title: string;
      
    @IsDateString()
    date: Date;
    
    @IsBoolean()
    islastDate: boolean;

event.entity.ts

 @Entity('events')
  export class Event extends BaseEntity {
    @PrimaryGeneratedColumn('increment', { type: 'int' })
    id: number;
  
    @ManyToOne(type => User, user => user.events)
    @JoinColumn()
    readonly user?: User;
    userId: User;

    @Column('varchar')
    title: string;
  
    @Column('date')
    date: Date;
  
    @Column('bool')
    isLastdate: boolean;

我向服务器发送以下请求

{
"id":0,
"userId":1,
"title":"mytest",
"date":"2011-10-05T14:48:00.000Z",
"isLastdate":0,
"beginTime":"2011-10-05T14:48:00.000Z",
"endTime":"2011-10-05T14:48:00.000Z",
"place":"Tokyo",
"labelCd":1,
"detail":"test"
}

返回了以下错误。 我应该将什么设置为 boolean 值?

{
    "statusCode": 400,
    "message": [
        "islastDate must be a boolean value"
    ],
    "error": "Bad Request"
}

这是我在上面生成的DB实体。


mysql> desc events;
+------------+--------------+------+-----+----------------------+----------------+
| Field      | Type         | Null | Key | Default              | Extra          |
+------------+--------------+------+-----+----------------------+----------------+
| id         | int(11)      | NO   | PRI | NULL                 | auto_increment |
| title      | varchar(255) | NO   |     | NULL                 |                |
| date       | date         | NO   |     | NULL                 |                |
| place      | varchar(255) | NO   |     | NULL                 |                |
| detail     | varchar(255) | NO   |     | NULL                 |                |
| createdAt  | datetime(6)  | NO   |     | CURRENT_TIMESTAMP(6) |                |
| updatedAt  | datetime(6)  | NO   |     | CURRENT_TIMESTAMP(6) |                |
| deletedAt  | datetime(6)  | YES  |     | NULL                 |                |
| beginTime  | time         | NO   |     | NULL                 |                |
| endTime    | time         | NO   |     | NULL                 |                |
| labelCd    | int(11)      | NO   |     | NULL                 |                |
| userId     | int(11)      | YES  | MUL | NULL                 |                |
| isLastdate | tinyint(4)   | NO   |     | NULL                 |                |
+------------+--------------+------+-----+----------------------+----------------+

我的理解有问题吗?

什么是 bool 值?

谢谢

最佳答案

您的请求数据中存在拼写错误,您的 DTO 中有 islastDate: boolean; ,实体文件中有 isLastdate: boolean; 。更改一个以匹配另一个,应该没问题。

关于mysql - 如何在 typeorm 和 Nest.js 中设置 bool 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64116610/

相关文章:

php - Cakephp2 FindBy语句中的sql错误,得到1064语法错误

mysql - 如何在 Windows 中使用命令提示符从服务器下载 mysql 数据库

mysql - 使用 Group By 和 Count 优化查询

typescript - 如何在 Typescript 中使用接口(interface)的一部分作为新接口(interface)?

javascript - 如何模拟正在测试的服务调用的函数的实现?

nestjs - 如何在 typeorm 事务中使用服务方法

NestJS 使用类转换示例验证 header

php - 在回显中以 Y-M-D 格式回显输入类型中的日期

javascript - 使用部分文字创建另一个文字

angular - 如何在angular2中使用sharedModule?