基于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 Undefined,Null类型和NaN值区别
Oct 22 Javascript
javascript之querySelector和querySelectorAll使用说明
Oct 09 Javascript
js 实现在离开页面时提醒未保存的信息(减少用户重复操作)
Jan 16 Javascript
原生js结合html5制作小飞龙的简易跳球
Mar 30 Javascript
浅谈利用JavaScript进行的DDoS攻击原理与防御
Jun 04 Javascript
详解Javacript和AngularJS中的Promises
Feb 09 Javascript
vue2.0设置proxyTable使用axios进行跨域请求的方法
Oct 19 Javascript
mpvue中配置vuex并持久化到本地Storage图文教程解析
Mar 15 Javascript
小程序视频或音频自定义可拖拽进度条的示例代码
Sep 30 Javascript
微信小程序使用map组件实现检索(定位位置)周边的POI功能示例
Jan 23 Javascript
如何解决日期函数new Date()浏览器兼容性问题
Sep 11 Javascript
layui富文本编辑器前端无法取值的解决方法
Sep 18 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
PHP 高手之路(一)
2006/10/09 PHP
PHP中redis的用法深入解析
2014/02/20 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
Prototype Function对象 学习
2009/07/12 Javascript
jquery 得到当前页面高度和宽度的两个函数
2010/02/21 Javascript
javascript 节点遍历函数
2010/03/28 Javascript
javascript代码加载优化方法
2011/01/30 Javascript
javascript 节点排序 2
2011/01/31 Javascript
createElement与createDocumentFragment的点点区别小结
2011/12/19 Javascript
jquery prop的使用介绍及与attr的区别
2013/12/19 Javascript
node.js中的fs.fstatSync方法使用说明
2014/12/15 Javascript
jQuery动态修改超链接地址的方法
2015/02/13 Javascript
jQuery使用CSS()方法给指定元素同时设置多个样式
2015/03/26 Javascript
JavaScript控制按钮可用或不可用的方法
2015/04/03 Javascript
JavaScript 里的类数组对象
2015/04/08 Javascript
JS实现网页上随机产生超链接地址的方法
2015/11/09 Javascript
基于angular实现三级联动的生日插件
2017/05/12 Javascript
SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题的解决方法
2018/01/09 Javascript
微信小程序如何获取用户手机号
2018/01/26 Javascript
node(koa2) web应用模块介绍详解
2019/03/29 Javascript
js中的深浅拷贝问题简析
2019/05/10 Javascript
Vuejs通过拖动改变元素宽度实现自适应
2020/09/02 Javascript
[01:19:23]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第二场
2018/04/06 DOTA
使用BeautifulSoup爬虫程序获取百度搜索结果的标题和url示例
2014/01/19 Python
用Python实现一个简单的多线程TCP服务器的教程
2015/05/05 Python
python爬虫获取淘宝天猫商品详细参数
2020/06/23 Python
python 划分数据集为训练集和测试集的方法
2018/12/11 Python
Django配置文件代码说明
2019/12/04 Python
tensorflow 保存模型和取出中间权重例子
2020/01/24 Python
打印tensorflow恢复模型中所有变量与操作节点方式
2020/05/26 Python
一文解决django 2.2与mysql兼容性问题
2020/07/15 Python
HTML5播放实现rtmp流直播
2020/06/16 HTML / CSS
Lookfantastic德国官网:英国知名美妆购物网站
2017/06/11 全球购物
Capitol Lighting的1800lighting.com:住宅和商业照明
2019/04/10 全球购物
企业财务管理制度范本
2015/08/04 职场文书
家长必看:义务教育,不得以面试 评测等名义选拔学生
2019/07/09 职场文书