基于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 元素相对定位代码
Oct 15 Javascript
JavaScript高级程序设计(第3版)学习笔记12 js正则表达式
Oct 11 Javascript
使用AOP改善javascript代码
May 01 Javascript
js数组常见操作及数组与字符串相互转化实例详解
Nov 10 Javascript
angularjs $http实现form表单提交示例
Jun 09 Javascript
Angular 2父子组件数据传递之@Input和@Output详解 (上)
Jul 05 Javascript
详解在express站点中使用ejs模板引擎
Sep 21 Javascript
JS实现非首屏图片延迟加载的示例
Jan 06 Javascript
跨域解决之JSONP和CORS的详细介绍
Nov 21 Javascript
原生JS forEach()和map()遍历的区别、兼容写法及jQuery $.each、$.map遍历操作
Feb 27 jQuery
Node.JS枚举统计当前文件夹和子目录下所有代码文件行数
Aug 23 Javascript
Vue2.0 $set()的正确使用详解
Jul 28 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
解决GD中文乱码问题
2007/02/14 PHP
php使用类继承解决代码重复的问题
2015/02/11 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
thinkPHP框架实现生成条形码的方法示例
2018/06/06 PHP
Laravel学习笔记之Artisan命令生成自定义模板的方法
2018/11/22 PHP
JavaScript 学习历程和心得分享
2010/12/12 Javascript
jquery插件制作 图片走廊 gallery
2012/08/17 Javascript
刷新页面的几种方法小结(JS,ASP.NET)
2014/01/07 Javascript
浅析Bootstrap组件之面板组件
2016/05/04 Javascript
Spring Boot+AngularJS+BootStrap实现进度条示例代码
2017/03/02 Javascript
angular.JS实现网页禁用调试、复制和剪切
2017/03/31 Javascript
node.JS md5加密中文与php结果不一致的解决方法
2017/05/05 Javascript
vue.js内部自定义指令与全局自定义指令的实现详解(利用directive)
2017/07/11 Javascript
Angular使用 ng-img-max 调整浏览器中的图片的示例代码
2017/08/17 Javascript
浅析JavaScript中的特殊数据类型
2017/12/15 Javascript
微信小程序文章详情页面实现代码
2018/09/10 Javascript
用jQuery将JavaScript对象转换为querystring查询字符串的方法
2018/11/12 jQuery
JQuery使用属性addClass、removeClass和toggleClass实现增加和删除类操作示例
2019/11/18 jQuery
[04:04]显微镜下的DOTA2第六期——电影级别的华丽团战
2014/06/20 DOTA
[57:55]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第二场 12.12
2020/12/16 DOTA
python解析html开发库pyquery使用方法
2014/02/07 Python
Python中使用tarfile压缩、解压tar归档文件示例
2015/04/05 Python
python基础教程项目三之万能的XML
2018/04/02 Python
pycharm运行和调试不显示结果的解决方法
2018/11/30 Python
python读取图片的方式,以及将图片以三维数组的形式输出方法
2019/07/03 Python
Pytorch 中retain_graph的用法详解
2020/01/07 Python
Selenium webdriver添加cookie实现过程详解
2020/08/12 Python
Python利用imshow制作自定义渐变填充柱状图(colorbar)
2020/12/10 Python
eBay奥地利站:eBay.at
2019/07/24 全球购物
自我评价范文点评
2013/12/04 职场文书
播音主持专业个人自我评价
2014/01/09 职场文书
安全宣传标语
2014/06/10 职场文书
2014党员民主评议个人思想剖析发言
2014/09/19 职场文书
2019自荐信范文集锦!
2019/07/03 职场文书
Python入门之使用pandas分析excel数据
2021/05/12 Python
Java工作中实用的代码优化技巧分享
2022/04/21 Java/Android