基于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 相关文章推荐
JS获取键盘上任意按键的值(实例代码)
Nov 12 Javascript
分析js闭包引起的事件注册问题
Mar 29 Javascript
jquery Deferred 快速解决异步回调的问题
Apr 05 Javascript
基于CSS3和jQuery实现跟随鼠标方位的Hover特效
Jul 25 Javascript
浅谈移动端之js touch事件 手势滑动事件
Nov 07 Javascript
React Router基础使用
Jan 17 Javascript
AngularJS框架中的双向数据绑定机制详解【减少需要重复的开发代码量】
Jan 19 Javascript
vue项目实现记住密码到cookie功能示例(附源码)
Jan 31 Javascript
vue中改变选中当前项的显示隐藏或者状态的实现方法
Feb 08 Javascript
Vue路由前后端设计总结
Aug 06 Javascript
js tab栏切换代码实例解析
Sep 03 Javascript
nuxt 实现在其它js文件中使用store的方式
Nov 05 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中判断字符串是否全是中文或含有中文的实现代码
2011/09/16 PHP
PHP中strtotime函数使用方法分享
2012/01/10 PHP
php模拟post上传图片实现代码
2016/06/24 PHP
php使用Jpgraph创建3D饼形图效果示例
2017/02/15 PHP
PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
2020/05/29 PHP
jquery 页面全选框实践代码
2010/04/02 Javascript
Jquery增加鼠标中间功能mousewheel的实例代码
2013/09/05 Javascript
JS判断移动端访问设备并加载对应CSS样式
2014/06/13 Javascript
JS实现的表格行鼠标点击高亮效果代码
2015/11/27 Javascript
js实现文字滚动效果
2016/03/03 Javascript
详解javascript立即执行函数表达式IIFE
2017/02/13 Javascript
JavaScript无阻塞加载和defer、async详解
2017/02/26 Javascript
Vue中的v-cloak使用解读
2017/03/27 Javascript
详解vue.js根据不同环境(正式、测试)打包到不同目录
2018/07/13 Javascript
Vue三种常用传值示例(父传子、子传父、非父子)
2018/07/24 Javascript
vue项目中使用eslint+prettier规范与检查代码的方法
2020/01/16 Javascript
[51:00]Secret vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
Cpy和Python的效率对比
2015/03/20 Python
Python创建一个空的dataframe,并循环赋值的方法
2018/11/08 Python
Python实现八皇后问题示例代码
2018/12/09 Python
python脚本之一键移动自定格式文件方法实例
2019/09/02 Python
keras得到每层的系数方式
2020/06/15 Python
Python判断远程服务器上Excel文件是否被人打开的方法
2020/07/13 Python
html5拖曳操作 HTML5实现网页元素的拖放操作
2013/01/02 HTML / CSS
美国祛痘、抗衰老药妆品牌:Murad
2016/08/27 全球购物
Beauty Expert美国/加拿大:购买奢侈美容产品
2018/12/05 全球购物
super()与this()的区别
2016/01/17 面试题
实习护理工作自我评价
2013/09/25 职场文书
档案管理员岗位职责
2013/12/01 职场文书
网络编辑求职信
2014/04/30 职场文书
业务员辞职信范文
2015/03/02 职场文书
横空出世观后感
2015/06/09 职场文书
七年级作文之秋游
2019/10/21 职场文书
《狼王梦》读后感:可怜天下父母心
2019/11/01 职场文书
读《解忧杂货店》有感:请相信一切都是最好的安排
2019/11/07 职场文书
Java版 单机五子棋
2022/05/04 Java/Android