#mysql #typescript #nestjs #typeorm
#mysql #typescript #nestjs #typeorm
Вопрос:
Я разрабатывал приложения с помощью nest.js
и typeorm
. Объект проверяется следующим образом.
У меня есть несколько вопросов о 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 | |
------------ -------------- ------ ----- ---------------------- ----------------
Что-то не так с моим пониманием?
Что такое логическое значение?
Спасибо
Ответ №1:
В ваших данных запроса есть опечатка, которая есть islastDate: boolean;
в вашем DTO и isLastdate: boolean;
в вашем файле сущности. Измените одно на другое, и все будет в порядке.
Ответ №2:
Я также пытался обновить одно логическое значение в своей сущности, но сгенерированный запрос с помощью typeorm всегда отправлял 0, независимо от того, передаю я true или false, замена метода PUT методом POST сделала свое дело для меня. Также я передал параметры, сначала создав Dto из этих параметров, т.е. создав тип для параметров