zoukankan      html  css  js  c++  java
  • node.js express mvc轻量级框架实践

    本文记录的是笔者最近抽私下时间给朋友做的一个时时彩自动下注系统,比较简单,主要也是为了学习一下node.js。

    其实逻辑没什么可以深谈的,主要是想说说这套代码结构。结构如下图:

    HJW84VXM)(9E$T)(6~5@IOB

    js的代码比较难以维护,不清楚大家对于这点是否认同,但这里笔者只说自己的感受,笔者的朋友一开始找到笔者,说玩时时彩,一直盯着玩,会因为贪心会乱来,想做个自动下注系统, 让程序自己玩。一开始,笔者也只想敷衍了事,直接拿node.js+express整了下面这套结构。

    image

    基本和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 分多个进程管理器管理。

    如需转载,请在显眼处标明本文链接,谢谢。
  • 相关阅读:
    最近积累的JS 东西,分享一下
    C#定时任务框架Quartz.NET
    如何成为微软社区MVP以及年终总结
    git 基于某个分支创建分支
    iframe跨域-Js通信的一种方式
    tcp连接建立断开过程及状态变化
    MySQL-InnoDB的事务隔离与锁
    MySQL索引原理总结
    php gd实现简单图片验证码与图片背景文字水印
    php 取post数据的三种方式
  • 原文地址:https://www.cnblogs.com/snaildev/p/7516289.html
Copyright © 2011-2022 走看看