基于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 相关文章推荐
学习YUI.Ext 第三天
Mar 10 Javascript
javascript 控制 html元素 显示/隐藏实现代码
Sep 01 Javascript
Javascript对象属性方法汇总
Nov 21 Javascript
jQuery实现设置、移除文本框默认值功能
Jan 13 Javascript
js仿微信公众平台打标签功能
Apr 08 Javascript
bootstrap 设置checkbox部分选中效果
Apr 20 Javascript
基于VUE选择上传图片并页面显示(图片可删除)
May 25 Javascript
详解angularjs 学习之 scope作用域
Jan 15 Javascript
微信小程序拍照和摄像功能实现方法示例
Feb 01 Javascript
优雅的将ElementUI表格变身成树形表格的方法步骤
Apr 11 Javascript
详解vue-cli中使用rem,vue自适应
May 06 Javascript
vue项目使用.env文件配置全局环境变量的方法
Oct 24 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笔记之:日期函数的使用介绍
2013/04/24 PHP
关于PHP堆栈与列队的学习
2013/06/21 PHP
php实现约瑟夫问题的方法小结
2015/03/23 PHP
php给一组指定关键词添加span标签的方法
2015/03/31 PHP
PHP 中提示undefined index如何解决(多种方法)
2016/03/16 PHP
表单(FORM)的一些实用效果代码
2007/03/25 Javascript
深入理解JavaScript定时机制
2010/10/29 Javascript
JS HTML5 音乐天气播放器(Ajax获取天气信息)
2013/05/26 Javascript
js如何调用qq互联api实现第三方登录
2014/03/28 Javascript
JavaScript控制table某列不显示的方法
2015/03/16 Javascript
实例解析jQuery插件EasyUI最常用的表单验证规则
2015/11/29 Javascript
jQuery封装的屏幕居中提示信息代码
2016/06/08 Javascript
js删除Array数组中指定元素的两种方法
2016/08/03 Javascript
bootstrap实现图片自动轮播
2016/12/21 Javascript
bootstrap css样式之表单
2017/01/19 Javascript
详谈表单重复提交的三种情况及解决方法
2017/08/16 Javascript
Node.js实现连接mysql数据库功能示例
2017/09/15 Javascript
基于vue,vue-router, vuex及addRoutes进行权限控制问题
2018/05/02 Javascript
JS数组实现分类统计实例代码
2018/09/30 Javascript
详解JS实现简单的时分秒倒计时代码
2019/04/25 Javascript
JavaScript实现联动菜单特效
2020/01/07 Javascript
Python中列表、字典、元组、集合数据结构整理
2014/11/20 Python
python使用smtplib模块通过gmail实现邮件发送的方法
2015/05/08 Python
python安装教程
2018/02/28 Python
Python 3.x 安装opencv+opencv_contrib的操作方法
2018/04/02 Python
python 实现二维列表转置
2019/12/02 Python
Pytorch之保存读取模型实例
2019/12/30 Python
Ranorex通过Python将报告发送到邮箱的方法
2020/01/12 Python
python 递归调用返回None的问题及解决方法
2020/03/16 Python
会计系毕业个人自荐信格式
2013/09/23 职场文书
公务员平时考核实施方案
2014/03/11 职场文书
学习十八大演讲稿
2014/09/15 职场文书
庐山导游词
2015/02/03 职场文书
2015初中政治教学工作总结
2015/07/21 职场文书
2016年情人节问候语
2015/11/11 职场文书
Java 中的 Unsafe 魔法类的作用大全
2021/06/26 Java/Android