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

    如需转载,请在显眼处标明本文链接,谢谢。
  • 相关阅读:
    北京Uber优步司机奖励政策(3月3日)
    ubuntu安装phpstorm
    ubuntu安装typora
    PHP定时任务Crontab结合CLI模式详解
    mysql创建用户,并授予权限
    ubuntu下使用crontab定时器
    Ubuntu 查看当前目录使用的总空间大小
    ubuntu安装ruby,安装sass,安装compass
    open_basedir restriction in effect,解决php引入文件权限问题 lnmp
    canvas 画线
  • 原文地址:https://www.cnblogs.com/snaildev/p/7516289.html
Copyright © 2011-2022 走看看