基于node.js express mvc轻量级框架实践


Posted in Javascript onSeptember 14, 2017

本文记录的是笔者最近抽私下时间给朋友做的一个时时彩自动下注系统,比较简单,主要也是为了学习一下node.js。

其实逻辑没什么可以深谈的,主要是想说说这套代码结构。结构如下图:

基于node.js express mvc轻量级框架实践

js的代码比较难以维护,不清楚大家对于这点是否认同,但这里笔者只说自己的感受,笔者的朋友一开始找到笔者,说玩时时彩,一直盯着玩,会因为贪心会乱来,想做个自动下注系统, 让程序自己玩。一开始,笔者也只想敷衍了事,直接拿node.js+express整了下面这套结构。

基于node.js express mvc轻量级框架实践

基本和express 示例代码没啥两样。但是随着需求的变更,觉得维护起来越来越吃力, 无奈,只能重新来一遍。

这套node.js express mvc代码结构我是学习nodeclub开源项目得来,有兴趣的朋友可以去学习下。简要说明下代码中各部分的意义:

api-------------------> api 逻辑处理层, 一般就是数据的CURD等操作

controllers--------> c端站点,没什么可说的

jobs-----------------> 定时任务工作, 结合node-schedule

logs-----------------> 文件日志

models ------------> mongoose 数据库链接及各实体定义

proxy --------------> 数据库访问方法封装,比如说insert、update

util------------------> 工具js封装,如 DateFormat

views--------------> 页面层,ejs 页面渲染引擎

api_router.js-----> api路由

web_router.js---> web页面路由

app.js-------------> 玩express的都知道这个文件干啥。

笔者为什么这么做? MVC代码分层,虽然代码量无形的增加了,但目的是为了更好的管理,意味着大幅度降低维护成本,利大于弊。

这里顺便提一下 node-schedule pm2 进程管理器 在多进程模式下,会出现重复执行问题,笔者的解决方案是 将web 和 jobs 分多个进程管理器管理。

以上这篇基于node.js express mvc轻量级框架实践就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 内存回收机制理解
Jan 17 Javascript
我的javascript 函数链之演变
Apr 07 Javascript
js浮点数保留两位小数点示例代码(四舍五入)
Dec 26 Javascript
JavaScript数组深拷贝和浅拷贝的两种方法
Apr 16 Javascript
jQuery获取复选框被选中数量及判断选择值的方法详解
May 25 Javascript
Bootstrap CSS组件之分页(pagination)和翻页(pager)
Dec 17 Javascript
Angularjs实现页面模板清除的方法
Jul 20 Javascript
解决JavaScript layui 下拉框不显示的问题
Aug 14 Javascript
Bootstrap-table自定义可编辑每页显示记录数
Sep 07 Javascript
vue自定义键盘信息、监听数据变化的方法示例【基于vm.$watch】
Mar 16 Javascript
vue+element-ui+axios实现图片上传
Aug 20 Javascript
Element Carousel 走马灯的具体实现
Jul 26 Javascript
gulp教程_从入门到项目中快速上手使用方法
Sep 14 #Javascript
利用jsonp与代理服务器方案解决跨域问题
Sep 14 #Javascript
基于js中document.cookie全面解析
Sep 14 #Javascript
基于Vue过渡状态实例讲解
Sep 14 #Javascript
JavaScript使用atan2来绘制箭头和曲线的实例
Sep 14 #Javascript
Vue2.0基于vue-cli+webpack同级组件之间的通信教程(推荐)
Sep 14 #Javascript
Vue2.0基于vue-cli+webpack父子组件通信(实例讲解)
Sep 14 #Javascript
You might like
Godaddy空间Zend Optimizer升级方法
2010/05/10 PHP
php获取根域名方法汇总
2014/10/28 PHP
thinkphp的URL路由规则与配置实例
2014/11/26 PHP
关于laravel 数据库迁移中integer类型是无法指定长度的问题
2019/10/09 PHP
JavaScript 设计模式 安全沙箱模式
2010/09/24 Javascript
Array的push与unshift方法性能比较分析
2011/03/05 Javascript
Jquery index()方法 获取相应元素索引值
2012/10/12 Javascript
Ext中下拉列表ComboBox组件store数据格式用法介绍
2013/07/15 Javascript
js获取html文件的思路及示例
2013/09/17 Javascript
jQuery事件用法实例汇总
2014/08/29 Javascript
javascript将url中的参数加密解密代码
2014/11/17 Javascript
javascript加减乘除的简单实例
2016/07/12 Javascript
微信js-sdk分享功能接口常用逻辑封装示例
2016/10/13 Javascript
JavaScript动态绑定详解
2017/09/14 Javascript
教你用Cordova打包Vue项目的方法
2017/10/17 Javascript
JS实现面向对象继承的5种方式分析
2018/07/21 Javascript
记一次vue-webpack项目优化实践详解
2019/02/17 Javascript
JavaScript设计模式之策略模式实现原理详解
2020/05/29 Javascript
Node.js API详解之 dgram模块用法实例分析
2020/06/05 Javascript
Python的Tornado框架实现图片上传及图片大小修改功能
2016/06/30 Python
Python cookbook(数据结构与算法)找到最大或最小的N个元素实现方法示例
2018/02/13 Python
Python 给屏幕打印信息加上颜色的实现方法
2019/04/24 Python
python scrapy爬虫代码及填坑
2019/08/12 Python
Mac中PyCharm配置Anaconda环境的方法
2020/03/04 Python
Django如何继承AbstractUser扩展字段
2020/11/27 Python
CSS3实现的渐变幻灯片效果
2020/12/07 HTML / CSS
材料加工硕士生求职信
2013/10/10 职场文书
《小小竹排画中游》教学反思
2014/02/26 职场文书
《最大的麦穗》教学反思
2014/04/17 职场文书
小学生环保标语
2014/06/13 职场文书
中秋节国旗下演讲稿
2014/09/05 职场文书
党的群众路线教育实践活动个人对照检查材料(校长)
2014/11/05 职场文书
岳庙导游词
2015/02/04 职场文书
2015年政风行风工作总结
2015/04/21 职场文书
2016五一劳动节慰问信
2015/11/30 职场文书
Python制作表白爱心合集
2022/01/22 Python