基于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 相关文章推荐
判断目标是否是window,document,和拥有tagName的Element的代码
May 31 Javascript
autoIMG 基于jquery的图片自适应插件代码
Mar 12 Javascript
jQuery创建插件的代码分析
Apr 14 Javascript
70+漂亮且极具亲和力的导航菜单设计国外网站推荐
Sep 20 Javascript
jQuery弹性滑动导航菜单实现思路及代码
May 02 Javascript
JavaScript实现简单Tip提示框效果
Apr 20 Javascript
Javascript 实现放大镜效果实例详解
Dec 03 Javascript
JS对象的深度克隆方法示例
Mar 16 Javascript
详解JavaScript对象的深浅复制
Mar 30 Javascript
Vue实现购物车场景下的应用
Nov 27 Javascript
JS FormData对象使用方法实例详解
Feb 12 Javascript
微信小程序手动添加收货地址省市区联动
May 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实现转盘抽奖算法分享
2020/04/15 PHP
PHP代码加密的方法总结
2020/03/13 PHP
Javascript匿名函数的一种应用 代码封装
2010/06/27 Javascript
JavaScript类和继承 prototype属性
2010/09/03 Javascript
验证控件与Button的OnClientClick事件详细解析
2013/12/04 Javascript
JavaScript中Math对象方法使用概述
2014/01/02 Javascript
一个简单的动态加载js和css的jquery代码
2014/09/01 Javascript
JavaScript使用cookie记录临时访客信息的方法
2015/04/07 Javascript
js实现图片轮播效果
2015/12/19 Javascript
javascript深拷贝(deepClone)详解
2016/08/24 Javascript
基于JavaScript实现右键菜单和拖拽功能
2016/11/28 Javascript
jQuery实现可编辑表格并生成json结果(实例代码)
2017/07/19 jQuery
angularjs 的数据绑定实现原理
2018/07/02 Javascript
JavaScript高级函数应用之分时函数实例分析
2018/08/03 Javascript
vue中Element-ui 输入银行账号每四位加一个空格的实现代码
2018/09/14 Javascript
JS实现的类似微信聊天效果示例
2019/01/29 Javascript
layui树形菜单动态遍历的例子
2019/09/23 Javascript
原生js实现随机点名功能
2019/11/05 Javascript
JQuery表单元素取值赋值方法总结
2020/05/12 jQuery
Python设计模式之备忘录模式原理与用法详解
2019/01/15 Python
Python queue队列原理与应用案例分析
2019/09/27 Python
Python3 集合set入门基础
2020/02/10 Python
python绘制趋势图的示例
2020/09/17 Python
Python求区间正整数内所有素数之和的方法实例
2020/10/13 Python
Python+OpenCV图像处理——实现直线检测
2020/10/23 Python
python爬虫 requests-html的使用
2020/11/30 Python
巴西电子、家电、智能手机购物网站:Girafa
2019/06/04 全球购物
乡镇信息公开实施方案
2014/03/23 职场文书
医院信息公开实施方案
2014/05/09 职场文书
走进敬老院活动总结
2014/07/10 职场文书
解放思想大讨论活动心得体会
2014/09/11 职场文书
2014年防汛工作总结
2014/12/08 职场文书
教师个人自我评价
2015/03/04 职场文书
紧急通知
2015/04/17 职场文书
植树节新闻稿
2015/07/17 职场文书
学习委员竞选稿
2015/11/20 职场文书