基于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 Event事件学习第一章 Event介绍
Feb 07 Javascript
jquery 操作DOM的基本用法分享
Apr 05 Javascript
JAVASCRIPT函数作用域和提前声明 分享
Aug 22 Javascript
Jquery 在页面加载后执行的几种方式
Mar 14 Javascript
JS、DOM和JQuery之间的关系示例分析
Apr 09 Javascript
Node.js中require的工作原理浅析
Jun 24 Javascript
node.js中的path.join方法使用说明
Dec 08 Javascript
在JavaScript中操作数组之map()方法的使用
Jun 09 Javascript
最全的Javascript编码规范(推荐)
Jun 22 Javascript
node.js环境搭建图文详解
Sep 19 Javascript
小程序实现悬浮搜索框
Jul 12 Javascript
JS实现前端路由功能示例【原生路由】
May 29 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
pw的一个放后门的方法分析
2007/10/08 PHP
解析php中var_dump,var_export,print_r三个函数的区别
2013/06/21 PHP
解析PHP的session过期设置
2013/06/29 PHP
php 生成短网址原理及代码
2014/01/23 PHP
php 修改上传文件大小限制实例详解
2016/10/23 PHP
用Laravel Sms实现laravel短信验证码的发送的实现
2018/11/29 PHP
Javascript 构造函数 实例分析
2008/11/26 Javascript
js和jquery批量绑定事件传参数一(新猪猪原创)
2010/06/23 Javascript
javascript attachEvent绑定多个事件执行顺序问题
2010/10/20 Javascript
用JS实现一个TreeMenu效果分享
2011/08/28 Javascript
js 自制滚动条的小例子
2013/03/16 Javascript
JS实现上下左右对称的九九乘法表
2016/02/22 Javascript
使用node.js中的Buffer类处理二进制数据的方法
2016/11/26 Javascript
JQuery validate 验证一个单独的表单元素实例
2017/02/17 Javascript
详解nodejs爬虫程序解决gbk等中文编码问题
2017/04/06 NodeJs
nodejs爬虫遇到的乱码问题汇总
2017/04/07 NodeJs
vue.js的computed,filter,get,set的用法及区别详解
2018/03/08 Javascript
详解关于element级联选择器数据回显问题
2019/02/20 Javascript
原生js实现购物车功能
2020/09/23 Javascript
python 与GO中操作slice,list的方式实例代码
2017/03/20 Python
Python实现简单的获取图片爬虫功能示例
2017/07/12 Python
python中如何使用正则表达式的集合字符示例
2017/10/09 Python
python进程和线程用法知识点总结
2019/05/28 Python
css3 矩阵的使用详解
2018/03/20 HTML / CSS
W Concept美国:精选全球独立设计师
2017/02/22 全球购物
乌克兰移动电子产品和相关配件的在线商店:iTMag
2020/03/16 全球购物
会计实习自我鉴定
2013/12/04 职场文书
高二英语教学反思
2014/01/19 职场文书
小学教师国培感言
2014/02/08 职场文书
《第一次抱母亲》教学反思
2014/04/16 职场文书
和谐家庭演讲稿
2014/05/24 职场文书
镇班子对照检查材料思想汇报
2014/09/24 职场文书
2014年高三班主任工作总结
2014/12/05 职场文书
《假如》教学反思
2016/02/17 职场文书
python实现简易自习室座位预约系统
2021/06/30 Python
mysql中int(3)和int(10)的数值范围是否相同
2021/10/16 MySQL