【发布时间】:2021-07-13 11:14:55
【问题描述】:
我遵循 Nestjs 最常见的结构,每个域都有单独的文件夹
src/
user/
controllers/
user.controller.ts
repositories/
user.repository.ts
services/
user.service.ts
user.module.ts
team/
// the same as above but for team entity
team.module.ts
app.module.ts
在我的应用程序中,user 和 team 之间存在多对多关系。因此,用户可以有很多团队,就像团队可以有很多用户一样。为此,我为该表创建了表user_teams 和一个明显的单独存储库。
在我的应用程序的大多数地方,我需要使用像 getAllUsersInTeam(idTeam: number) 和 getAllTeamsBelongsToUser(idUser: number) 这样的函数,并且我已经在存储库 UserTeamRepository 中实现了这些函数。我的问题是保存此存储库文件的正确位置在哪里?在哪个模块?我有几个想法
-
在与主域实体相同的级别上创建一个单独的文件夹
src/ user/ // user module files team/ // team module files user-team/ repositories/ user-team.repository.ts user-team.module.ts在这种情况下,我可能会为每个多对多关系创建很多文件夹,这会给项目带来混乱和混乱。
-
在某些模块
user或team中保留UserTeamRepository。src/ user/ repositories/ user-team.repository.ts // or team/ repositories/ user-team.repository.ts在这种情况下,我发现对项目的理解存在问题。为什么我们将一个关系保存在一个文件夹中,而另一个我们决定以另一种方式保存。如何快速搜索这些关系。我认为新的开发人员会很困惑在哪里找到需要的关系以及在哪里保持新的关系,因为在良好的架构中应该没有问题在哪里保持新的类。
我愿意接受任何讨论和想法。提前感谢您的反馈!
【问题讨论】:
标签: node.js typescript architecture nestjs directory-structure