【发布时间】:2022-08-17 11:55:55
【问题描述】:
我只想允许帖子的作者从数据库中删除帖子。
当向控制器请求删除时,typeORM 打算 delte({id, user}) 通过将帖子 ID 和用户信息一起发送,但发生错误。
//entity
@Entity()
export class Board extends BaseEntity {
@PrimaryGeneratedColumn()
id: number;
@Column()
title: string;
@Column()
description: string;
@Column()
status: BoardStatus;
@ManyToOne((type) => UserEntity, (user) => user.boards, { eager: false })
user: UserEntity;
}
// controller
@Delete(\':id\')
deleteBoard(
@Param(\'id\', ParseIntPipe) id: number,
@GetUser() user: UserEntity,
): Promise<void> {
return this.boardService.deletBoard(id, user);
}
// service
async deletBoard(id: number, user: UserEntity): Promise<void> {
const result = await this.boardRepository.delete({ id, user });
/* Argument of type \'{ id: number; user: UserEntity; }\' is not assignable to parameter of type \'string | number | Date | ObjectID | string[] | number[] | Date[] | ObjectID[] | FindOptionsWhere<Board>\'.
Types of property \'user\' are incompatible. */
if (result.affected === 0)
throw new NotFoundException(`Can\'t find by ${id}`);
}
-
你能显示 user.entity 和 typeorm 版本吗