3 Star 13 Fork 4

泡泡机不冒泡了 / express-scaffold

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

express-scaffold

DEMO 地址: https://node.tanliyuan.top


DEMO 环境概况


基于 express-generator 扩展的脚手架

主要新增了如下常用基础设施功能:

  • config 多环境配置文件,在 config 目录下, default.json 公共配置文件,dev.jsonprod.json 会覆盖 default.json 中同名配置

  • 引入 swagger-uiswagger-jsdoc, 可以通过 jsDoc 注解生成 api 文档, swagger-ui 访问路径 https://node.tanliyuan.top/api/, json 格式路径 https://node.tanliyuan.top/api/api-docs.json

  • 引入基于 redis 持久化的 api 访问限流, 暂时演示所有链接每个IP每分钟只能访问 4 次

  • 集成 acl 库权限控制,初始 mongodb 数据在 db\acl_resources.json, 暂时演示仅在 \user\save 加了权限控制

  • 增加 github OAuth2 登录,授权链接:https://node.tanliyuan.top/oauth/github

  • mocha 测试报告

  • log4js 日志记录

  • 自动加载 routes 目录下的路由,增加路由映射时,不再需要手动添加 app.use('\**', router)

  • 集成 express-sessionconnect-redis , 存储 sessionredis

  • 集成 mongoose 连接 mongodb, 自动载入 /models 目录下 model

  • 钉钉机器人签到提醒, 目前周一到周五每晚十点, development.json 中配置 dingtalk, 填写机器人的 webhook


推荐两个国外免费云 NoSql 数据库

#1589F0 申请账号需要自备梯子,之后连接数据库使用过程不需要

  • redislabs (reids)

    30M 的免费空间

    通过设置 RedisStoreoption {saveUninitialized: false}, 只存储登录会话来减少空间占用,用来存储演示项目的 session 绰绰有余了.

  • mlab (mongodb)

    500M 的免费空间


快速开始

  1. 项目根目录下安装依赖包
    npm install
  1. 修改 config\development.jsonredis, mongodb 连接配置
        //mongodb 配置
        "db_url": "mongodb://<username>:<passwd>@127.0.0.1:27017/<dbname>",

        //redis session配置
        "port": 6379,
        "db": 0,
        "pass": "<passwd>",
        "host": "127.0.0.1",
  1. 可选,如果使用的是 VSCode 开发环境, 根据需要修改 .vscode\launch.json
        {
            "type": "node",
            "request": "launch",
            "name": "dev",
            "program": "${workspaceFolder}\\bin\\www",
            "cwd": "${workspaceFolder}",
            "env": {
                // 会读取 config 目录下 <NODE_ENV>.json 配置文件, 并合并、覆盖 default.json 中同名配置
                "NODE_ENV": "development",
                "DEBUG": "express:*"
                // proxy 开启时,项目中使用client rest 发送请求时, 可用 fiddler 等代理抓包, 方便调试
                // "proxy": "http://localhost:8888"
            }
        }
  1. 可以通过如下三种方式运行测试用例, 会在项目根目录下生成 mochawesome-report 测试报告

    1. 如果全局安装了 mocha , 可以直接在项目根目录下执行

          mocha

      mocha 默认会执行 test 目录下的测试用例,如果 test 目录下存在 mocha.opts 文件,则会将其内容作为参数, 所以等同于执行如下命令 :

          mocha --u tdd --colors ./test --reporter mochawesome
    2. 如果使用的是 vscode 开发工具, 可以进入 debug 模式,运行 Mocha Tests 配置, 具体配置可以查看 .vscode\launch.json , 实际运行命令同上

    3. 亦可以根目录下执行

          npm test

#f03c15 注意 2、3 中实际运行的是 _mocha 命令,用的是项目模块安装的 mocha, 1 中使用的是全局安装的 mocha, 某些情况下,你的这两个版本可能不一致

  1. 启动 http://localhost:3000
        npm start

或者 vscodedebug 模式下的 launch


如何使用及自定义修改


计划中

  • 线上 demo #00CC00 2017-11-24 15:08:32
  • 统一的异常处理
  • 添加测试用例, 增加 postman 文件,方便使用者调试
  • 非登录和登录状态不一样的限流策略

空文件

简介

基于express-generator 扩展的脚手架 展开 收起
NodeJS 等 3 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
NodeJS
1
https://gitee.com/tanliyuan/express-scaffold.git
git@gitee.com:tanliyuan/express-scaffold.git
tanliyuan
express-scaffold
express-scaffold
master

搜索帮助