我们不可能把应用需要的所有的东西全部放到同一个文件里,因为这会让应用混乱不堪。所以应用需要一种合适的架构,可以把应用分割成不同的部分,每个部分里面又可以有自己的组织结构。在很多重型应用构架里都会给你提供一套组织结构,比如这些框架里可能会有模块,服务,拦截器,守卫,中间件这些东西,在应用里可以创建这些东西,然后把它们组织在一起,框架提供了创建与使用它们的方法。
我们现在选择的是一款轻型框架,对于应用的架构,框架并没有给我们太多建议,它只提供了最基本的东西,比如路由,中间件。换句话说,我们的自由度更大一些,可以自己设计应用的架构。
在失控之前,最好先设计规划一下应用的组织结构,可以根据应用的功能,把应用分成不同的部分。比如 app(应用),auth(身份验证),user(用户),post(内容),comment(评论) 等等。每个部分都可以放在一个单独的目录里面,
每个部分里面又可以细分成一些不同的组件,比如 router(路由),controller(控制器),middleware(中间件),service(服务) 等等。比如有一个 user 模块,模块相关的东西放在 user 目录的下面,在目录里面可能会包含下面这些文件:
* user.router.ts
* user.controller.ts
* user.middleware.ts
* user.service.ts
*.router.ts
在 router 文件里可以定义这个应用模块里的一些路由(接口),比如在 user 这个模块里可以在 user.router.ts 文件里定义跟用户资源相关的一些接口。
*.controller.ts
在 controller 文件里可以定义模块里的接口需要的处理器,这样在 router 文件里可以导入使用 controller 文件里定义的处理器。
*.middleware.ts
把模块里需要的中间件放在这种 middleware 文件里。
*.service.ts
在 service 文件里可以定义一些服务方法,其实就是一些函数,在别的地方可以导入使用这些函数。比如在控制器的方法里,可能会重复用到的东西我们就可以把它们定义成服务方法,这样就可以重复使用它们了。