nodejs 项目目录结构设计

设计

要实现一定项目结构,并不是把项目分几个文件夹就完事了的,项目结构设计的最终目的是降低系统的复杂度,一般设计时,总是把一个系统,分成几个小系统,每个小系统独自完成一个功能,并且要控制各个子系统之间的访问权限,在java中很容易通过包权限来实现。但nodejs只有模块,没有包权限,所以项目开始时要通过约定来实现包权限,约定就是大家编写代码时自觉遵守的规则,自觉很重要。遵守各个子系统之间的访问权限,不要越权。

因为数据具有多样性,而为了保证数据层对外表现的一致一致性,因为每个项目的数据模型都不同,选用的数据库也因此不同,为了保证model层对外的一致性,也为了保护数据,在model层之上加上一个代理层。所有数据的访问需通过代理层。

在mvc中model层对应的是网站的资源模型,模型并不能简单理解成数据库中的表,他是抽象的,它可以是一张图片,一个文件,一张数据库的表,或者是几张表和在一起。

目录结构

  • bin
  • controllers
  • logs
  • middlewares
  • models
  • proxy
  • public
  • services
  • test
  • views
  • app.js
  • config.js
  • router.js
  • package.js

express 请求响应流程

流程

流程解析

上图的箭头代表着请求的流向或者访问的权限。
router:只做请求分发,没有业务逻辑
err是统一的错误处理位置,记录错误,统一err页面。
middlewares:业务中间件,如用户权限控制
model只能由它的proxy访问,而proxy能被controller和service访问。
controller主要逻辑处理
service作为项目的业务组件。如:redis连接服务,缓存组件,日志组件等,他可以减少controller的负担。
app:放一次性脚本

项目代码github

猜你喜欢

转载自blog.csdn.net/blueblueuueew/article/details/53608060