NodeJS 代码评审请求:每个路由、控制器和服务一个文件的体系结构[已关闭]

sirbozc5  于 2023-08-04  发布在  Node.js
关注(0)|答案(1)|浏览(96)

已关闭。此问题为opinion-based。它目前不接受回答。
**希望改进此问题?**请更新问题,以便editing this post能够以事实和引文来回答。

1小时前关闭
Improve this question
我目前正在使用TypeScript项目开发NodeJS Express,我使用一种结构来组织代码,其中每个路由,控制器和服务都有自己的文件。例如,我有以下文件:

├─ controllers
│  └─ auth.routes.ts
├─ routes
│  └─ auth.controller.ts
├─ services
│  └─ auth.service.ts

字符串
我采用这种方法的目的是使代码更加模块化,更易于维护。但是,我想知道这是否确实是最佳实践,以及随着项目的增长,它是否可能导致可伸缩性或性能问题。
我想听听你对这个体系结构的看法和经验。它是否使代码更容易理解和管理功能?还是随着项目的发展,它会使项目变得更加复杂?对于这种结构,我是否可以做一些替代或改进来增强代码的可读性和可维护性?
如果你能看看这个方法,并给予我你的意见,在一个NodeJS项目中组织代码的最佳方式,我将不胜感激。
提前感谢你的帮助

ffx8fchx

ffx8fchx1#

我不会太担心,结构是重要的,但更重要的是在你的想法灵活。当您更好地了解需求的规模时,您可能需要重构结构,这是您应该感到舒适的。项目应该允许它。
特别是这个

├─ controllers
│  └─ auth.controller.ts
├─ routes
│  └─ auth.routes.ts
├─ services
│  └─ auth.service.ts

字符串
这没有什么错,但是在routes文件夹中定义routes的扩展是多余的,通常我会这样做

├─ auth
│  └─ auth.controller.ts
│  └─ auth.routes.ts
│  └─ auth.service.ts


您还应该考虑有多少代码是通用的,以及导入/导出如何工作。根据我的经验,当把这些东西分解成粒度文件时,组织公共功能的分发可能会成为问题。您还应该考虑此模式和项目需要多少嵌套,以及结构是否适合它。

├─ common
│  └─ common.controller.ts
│  └─ common.routes.ts
│  └─ common.service.ts
├─ auth
│  └─ auth.controller.ts
│  └─ auth.routes.ts
│  └─ auth.service.ts


或者是

├─ ...
|└─ common.controller.ts
│└─ common.routes.ts
│└─ common.service.ts
├─ auth
│  └─ auth.controller.ts
│  └─ auth.routes.ts
│  └─ auth.service.ts


可以工作。
然后,如果您发现在某个时候您使用了90%的公共代码,那么这可能甚至不是问题,因为您只是从子目录导入它。
但是,是的,我不会太关注这一点。如果你注意细节以及代码是如何在文件中,并有良好的测试。如果需要,您应该能够更改结构。

相关问题