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
nodejs 项目目录结构设计相关推荐
- 如何将nodejs项目程序部署到阿里云服务器上
将nodejs项目程序部署到阿里云服务器上 一.概述 二.具体步骤 1.拥有自己的服务器 2.下载Xshell 3. oneinstack配置web环境 4. XShell连接远程主机 5.更新系统软 ...
- 在Linux部署Nodejs项目,一旦断掉XShell就会导致服务被停掉,真的很郁闷~怎么办?果断用forever
客户端启动Node.js应用,用node index.js这样可以正常启动应用,但是如果断开客户端连接,应用也就随之停止了.也就是说这样的启动方式没有给应用一个守护线程. 首先需要安装一个叫做fore ...
- NODEJS项目实践0.4 [domain,pm2,log4js,md5]
一.前言 ⋅⋅⋅上节我们基于mongo数据存取的操作,实现了用户注册.登录.退出功能,并应用了初级的权限验证.本节将处理nodejs异常情况.加密.日志及进程守护. git : https://git ...
- 用package.json配置NodeJS项目的模块声明
在NodeJS项目中,用package.json文件来声明项目中使用的模块,这样在新的环境部署时,只要在package.json文件所在的目录执行 npm install 命令即可安装所需要的模块. ...
- 部署nodejs项目到服务器的一些总结
安装nodejs 首先在服务器上安装nodejs并配置环境,这个可以参考官方的文档,就不细说了 拷贝项目到服务器上 这里其实可以通过git直接clone在服务器上.当然正常发版一般是将代码打包上传到服 ...
- Angular4.x 安装|创建项目|目录结构|创建组件
Angular4.x 安装|创建项目|目录结构|创建组件 安装最新版本的 nodejs node.js 官网:https://nodejs.org/zh-cn/ 去官网下载 node.js,下一步下一 ...
- 一台新云主机nodejs项目部署过程
某云服务商的一个全新的云服务器,系统为centos.需要在上面部署一套系统,包括了java.nodejs等等.本文记录一下与nodejs有关的部署过程.有些操作是熟悉.简单的,但也记录出来,权当流水账 ...
- docker mysql node_Docker打包nodejs项目和数据库
看这篇文章,必须知道基础的docker, 本文只提供思路和部分代码, 不负责教 所有的命令必须谨慎操作!三思而后行 命令 停止所有运行的容器 docker stop $(docker ps -a -q ...
- 在Centos上启动nodejs项目,并使用pm2管理nodejs应用
node+koa2+mysql入门可以查看这篇文章https://blog.csdn.net/qq_41231694/article/details/123788781 一.在centos上安装nod ...
- markdown写出项目目录结构
markdown写出项目目录结构: windows下的CMD命令tree可以很方便的得到文件夹目录树 环境:windows 功能:以树状图列出目录的内容 使用配方: tree [drive][path ...
最新文章
- Liunx的常用命令
- c++ stack 遍历_python实现二叉树的遍历以及其他基本操作
- Java 检测文件是否存在
- 技术的价值--从实验到企业实施的关键性思想
- 设计灵感|想让海报设计更丰富?可以试试重复
- TensorFlow tf.keras.layers.Dense
- 【报告分享】砥砺前行 智启新章:2019-2020中国银行业发展回顾与展望.pdf(附下载链接)...
- Java中提取字符串中的数字
- 1、Java多线程基础:进程和线程之由来
- net core引用外部dll发布后报错找不到文件
- java编程练习题:统计字符出现的次数
- Matlab 警告: 名称不存在或不是目录
- 游戏开发入门如何点亮技术树?
- C++ SLT中的容器学习与函数谓词
- 关于适配,我想说。。。
- 我用python实现了一个量化选股程序
- 荷包app软件测试,智能分贝测试仪app
- 财务学python还是vba_各位大佬好,财务分析,要使用BI,VBA,Python,Wind学习那个可以对财务工作更加有益?...
- [c语言]倒置字符串 -牛客网
- ubuntu安装有道词典命令行查询
热门文章
- 微信登陆失败redirect_uri 域名与后台配置不一致 10003(thinkphp)
- 【云锁·nginx自编译web防护教程】
- U盘启动的WinPe安装winxp(非ghost版)重启后出现NTLDR IS MISSING的问题
- 2019年 腾讯校园招聘JAVA
- Cloudera Manager API使用(附代码)
- 【2016.11.28】纯HTML仿微博注册页面
- 报告下集 |《认文识字·中文字信息精准化》报告
- Java 超简单实现邮件群发工具类 | 泰山出品
- 四色定理java_四色定理中公理的证明
- 2022年全球市场羊毛纱总体规模、主要生产商、主要地区、产品和应用细分研究报告