基于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调用堆栈及setTimeout使用方法深入剖析
Feb 16 Javascript
js读取注册表的键值示例
Sep 25 Javascript
Javascript delete 引用类型对象
Nov 01 Javascript
JS实现仿Windows经典风格的选项卡Tab切换代码
Oct 20 Javascript
Bootstrap模态框调用功能实现方法
Sep 19 Javascript
Vue.js使用v-show和v-if的注意事项
Dec 13 Javascript
React Native中TabBarIOS的简单使用方法示例
Oct 13 Javascript
vue 项目中使用Loading组件的示例代码
Aug 31 Javascript
解决vue项目使用font-awesome,build后路径的问题
Sep 01 Javascript
Vue项目pdf(base64)转图片遇到的问题及解决方法
Oct 19 Javascript
javascript实现超好看的3D烟花特效
Jan 01 Javascript
node.js使用stream模块实现自定义流示例
Feb 13 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/08/08 PHP
PHP Oauth授权和本地加密实现方法
2016/08/12 PHP
phpstudy的php版本自由修改的方法
2017/10/18 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
2018/06/13 PHP
用js控制组织结构图可以任意拖拽到指定位置
2014/01/17 Javascript
再谈javascript原型继承
2014/11/10 Javascript
jQuery判断数组是否包含了指定的元素
2015/03/10 Javascript
javascript单例模式的简单实现方法
2015/07/25 Javascript
浅析nodejs实现Websocket的数据接收与发送
2015/11/19 NodeJs
搞定immutable.js详细说明
2016/05/02 Javascript
js仿百度切换皮肤功能(html+css)
2016/07/10 Javascript
js发送短信倒计时的简单实现方法
2016/09/08 Javascript
jQuery实现的右下角广告窗体跟随效果示例
2016/09/16 Javascript
深入理解JS实现快速排序和去重
2016/10/17 Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
2016/12/18 Javascript
微信小程序 中wx.chooseAddress(OBJECT)实例详解
2017/03/31 Javascript
JS实现动态给标签控件添加事件的方法示例
2017/05/13 Javascript
jQuery实现购物车的总价计算和总价传值功能
2018/11/28 jQuery
微信小程序tabBar 返回tabBar不刷新页面
2019/07/25 Javascript
vue 组件之间事件触发($emit)与event Bus($on)的用法说明
2020/07/28 Javascript
Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)
2020/08/28 Javascript
Javascript节流函数throttle和防抖函数debounce
2020/12/03 Javascript
[07:08]2014DOTA2西雅图国际邀请赛 小组赛7月11日TOPPLAY
2014/07/11 DOTA
python实现隐马尔科夫模型HMM
2018/03/25 Python
python3.6数独问题的解决
2019/01/21 Python
Python使用dict.fromkeys()快速生成一个字典示例
2019/04/24 Python
python读写csv文件方法详细总结
2019/07/05 Python
python 接口实现 供第三方调用的例子
2019/08/13 Python
英国袜子店:Sock Shop
2017/01/11 全球购物
沙特阿拉伯家用电器和电子产品购物网站:Sheta and Saif
2020/04/03 全球购物
党员干部四风问题整改措施思想汇报
2014/10/12 职场文书
防汛通知
2015/04/25 职场文书
农民工工资承诺书大全
2015/05/04 职场文书
SpringBoot SpringEL表达式的使用
2021/07/25 Java/Android
Python Matplotlib绘制动画的代码详解
2022/05/30 Python
Android开发手册TextInputLayout样式使用示例
2022/06/10 Java/Android