基于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 相关文章推荐
jquery 查找select ,并触发事件的实现代码
Mar 30 Javascript
ASP.NET jQuery 实例7 通过jQuery来获取DropDownList的Text/Value属性值
Feb 03 Javascript
jQuery学习笔记之2个小技巧
Jan 19 Javascript
jQuery动态添加可拖动元素完整实例(附demo源码下载)
Jun 21 Javascript
AngularJS入门之动画
Jul 27 Javascript
jquery控制页面的展开和隐藏实现方法(推荐)
Oct 15 Javascript
AngularJs中 ng-repeat指令中实现含有自定义指令的动态html的方法
Jan 19 Javascript
php main 与 iframe 相互通讯类(js+php同域/跨域)
Sep 14 Javascript
详解Angular-ui-BootStrap组件的解释以及使用
Jul 13 Javascript
详解vuex 渐进式教程实例代码
Nov 27 Javascript
jquery.pager.js实现分页效果
Jul 29 jQuery
vue 动态添加的路由页面刷新时失效的原因及解决方案
Feb 26 Vue.js
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判断GIF图片是否为动画的方法
2020/09/04 PHP
php中mail函数发送邮件失败的解决方法
2014/12/24 PHP
thinkphp3.2.0 setInc方法 源码全面解析
2018/01/29 PHP
PHP二维索引数组的遍历实例分析【2种方式】
2019/06/24 PHP
JavaScript与函数式编程解释
2007/04/27 Javascript
prototype Element学习笔记(Element篇三)
2008/10/26 Javascript
浅谈javascript 面向对象编程
2009/10/28 Javascript
jquery插件corner实现圆角边框的方法
2015/03/09 Javascript
JavaScript中pop()方法的使用教程
2015/06/09 Javascript
JS实现仿新浪微博发布内容为空时提示功能代码
2015/08/19 Javascript
详解javascript实现瀑布流列式布局
2016/01/29 Javascript
详解vue.js的事件处理器v-on:click
2017/06/27 Javascript
JavaScript字符串转数字的5种方法及遇到的坑
2018/07/16 Javascript
JavaScript中this关键字用法实例分析
2018/08/24 Javascript
基于js实现复制内容到操作系统粘贴板过程解析
2019/10/11 Javascript
vue axios请求成功却进入catch的原因分析
2020/09/08 Javascript
javascript实现打砖块小游戏(附完整源码)
2020/09/18 Javascript
[00:42]《辉夜杯》—职业组预选赛12月3日15点 正式打响
2015/12/03 DOTA
[52:41]OG vs IG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/20 DOTA
[46:23]OG vs EG 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
python根据出生年份简单计算生肖的方法
2015/03/27 Python
python3实现字符串的全排列的方法(无重复字符)
2018/07/07 Python
Windows 8.1 64bit下搭建 Scrapy 0.22 环境
2018/11/18 Python
Python检查和同步本地时间(北京时间)的实现方法
2018/12/03 Python
python print出共轭复数的方法详解
2019/06/25 Python
python全局变量引用与修改过程解析
2020/01/07 Python
Tensorflow 实现将图像与标签数据转化为tfRecord文件
2020/02/17 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
2020/04/28 Python
美国领先的商务贺卡出版商:The Gallery Collection
2018/02/13 全球购物
英国奢侈品在线精品店:Hervia
2020/09/03 全球购物
软件缺陷的分类都有哪些
2014/08/22 面试题
关于赌博的检讨书
2014/01/08 职场文书
房屋公证委托书
2014/04/03 职场文书
模具专业自荐信
2014/05/29 职场文书
2014年节能减排工作总结
2014/12/06 职场文书
小学语文继续教育研修日志
2015/11/13 职场文书