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

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值