基于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函数
Dec 22 Javascript
javascript IFrame 强制刷新代码
Jul 23 Javascript
兼容FF和IE的动态table示例自写
Oct 21 Javascript
jQuery 1.9使用$.support替代$.browser的使用方法
May 27 Javascript
jQuery unbind()方法实例详解
Jan 19 Javascript
Google 爬虫如何抓取 JavaScript 的内容
Apr 07 Javascript
checkbox在vue中的用法小结
Nov 13 Javascript
vue列表单项展开收缩功能之this.$refs的详解
May 05 Javascript
JS使用new操作符创建对象的方法分析
May 30 Javascript
使用typescript快速开发一个cli的实现示例
Dec 09 Javascript
详解基于element的区间选择组件校验(交易金额)
Jan 07 Javascript
Vue和Flask通信的实现
May 19 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获取当前执行php文件名的代码
2017/03/02 PHP
PHP中Notice错误常见解决方法
2017/04/28 PHP
如何通过View::first使用Laravel Blade的动态模板详解
2017/09/21 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
js操作二级联动实现代码
2010/07/27 Javascript
Javascript 异步加载详解(浏览器在javascript的加载方式)
2012/05/20 Javascript
jQuery解决下拉框select设宽度时IE 6/7/8下option超出显示不全
2013/05/27 Javascript
JQuery记住用户名密码实现下次自动登录功能
2015/04/27 Javascript
js验证上传图片的方法
2015/05/12 Javascript
jQuery点击输入框显示验证码图片
2016/05/19 Javascript
Angular和Vue双向数据绑定的实现原理(重点是vue的双向绑定)
2016/11/22 Javascript
浅谈Node.js:fs文件系统模块
2016/12/08 Javascript
Map.vue基于百度地图组件重构笔记分享
2017/04/17 Javascript
JS利用正则表达式实现简单的密码强弱判断实例
2017/06/16 Javascript
基于javascript实现贪吃蛇经典小游戏
2020/04/10 Javascript
详解搭建一个vue-cli的移动端H5开发模板
2020/01/17 Javascript
JS加载解析Markdown文档过程详解
2020/05/19 Javascript
vue中解决chrome浏览器自动播放音频和MP3语音打包到线上的实现方法
2020/10/09 Javascript
[51:15]2014 DOTA2国际邀请赛中国区预选赛 Orenda VS LGD-GAMING
2014/05/22 DOTA
浅谈Python的Django框架中的缓存控制
2015/07/24 Python
利用 python 对目录下的文件进行过滤删除
2017/12/27 Python
Python numpy实现二维数组和一维数组拼接的方法
2018/06/05 Python
python版本五子棋的实现代码
2018/12/11 Python
python装饰器练习题及答案
2019/11/01 Python
修改Pandas的行或列的名字(重命名)
2019/12/18 Python
Python实现SMTP邮件发送
2020/06/16 Python
欧洲最大的预定车位市场:JustPark
2020/01/06 全球购物
Ariat英国官网:为世界顶级马术运动员制造最优质的鞋类和服装
2020/02/14 全球购物
介绍一下Linux内核的排队自旋锁
2014/01/04 面试题
读书演讲主持词
2014/03/18 职场文书
四风问题查摆材料
2014/08/25 职场文书
高中诗歌鉴赏教学反思
2016/02/16 职场文书
2016年秋季趣味运动会开幕词
2016/03/04 职场文书
JavaScript小技巧带你提升你的代码技能
2021/09/15 Javascript
利用Python实现模拟登录知乎
2022/05/25 Python
详解apache编译安装httpd-2.4.54及三种风格的init程序特点和区别
2022/07/15 Servers