簡體   English   中英

如何在 typeorm 和 nest.js 中設置布爾驗證

[英]How to set boolean validation in typeorm and nest.js

我通過nest.jstypeorm開發了應用程序。 實體被驗證如下。

我有一些關於boolean驗證的問題。

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                 |                |
+------------+--------------+------+-----+----------------------+----------------+

我的理解有問題嗎?

什么是布爾值?

謝謝

您的請求數據中有一個錯字,您有islastDate: boolean; 在你的 DTO 和isLastdate: boolean; 在您的實體文件中。 改變一個以匹配另一個,你應該沒問題。

我還試圖更新我的實體中的一個布爾值,但無論我傳遞 true 還是 false,typeorm 生成的查詢總是發送0 ,替換 PUT 方法是 POST 方法對我有用。 我還通過首先創建這些參數的 Dto 來傳遞參數,即為參數生成類型

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM