gpt4 book ai didi

NestJS创建基础CRUD服务

转载 作者:行者123 更新时间:2023-12-04 16:38:12 25 4
gpt4 key购买 nike

我正在用nestjs编写我的第一个REST API。

我有几个实体必须定义基本的CRUD操作。
我想知道是否有一种方法可以创建基本的Crud服务,以便不对所有实体重复相同的代码。
在此基本服务中,我将拥有四种调用存储库的CRUD方法,以便实际执行与数据库相关的工作。

基本上,我希望拥有一个BaseCrudService<T>,而不是拥有一个UserServiceextends BaseCrudService<UserEntity>
这样,我可以“重写”派生类中的方法来完成额外的逻辑事务,然后调用基本方法进行实际的插入,删除等操作。

是否可以?如果是这样,您将如何去做?

最佳答案

创建如下基本服务:

export class BaseCrudService<Entity extends BaseEntity> {

constructor(
public repository: Repository<Entity>,
) { }

async insertAsync(entity: Entity): Promise<InsertResult> {
return this.repository.insert(entity);
}
...
}

并且比单个服务扩展了该类:
@Injectable()
export class UserService extends BaseCrudService<UserEntity>{
constructor(
@InjectRepository(UserEntity)
public repository: Repository<UserEntity>,
) {
super(repository);
}
}

等等,现在您已经进行了插入,删除,更新等操作,这适用于扩展该类的所有服务。

按照此逻辑,您可以轻松创建 BaseCrudController

关于NestJS创建基础CRUD服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51056158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com