1.1.3 • Published 6 years ago

express-devtool v1.1.3

Weekly downloads
1
License
ISC
Repository
github
Last release
6 years ago

express-devtool

本地开发API处理中间件,提供数据模拟,接口proxy,页面跳转等功能提升前端本地开发能力。

无论你基于是 webpack 还是 fis,都可以用 express-devtool 来进行API模拟转发。

加载中间件

app.use(require('express-devtool')({
    mockDir: path.join(__dirname, 'mock') //定义mock目录
}));

目录规范

mock
  ├─ server.conf // 配置中心
  ├─ sample.json // json数据
  ├─ dynamic.js // js动态数据
  ...

如何使用

前端接口的mock主要在server.conf里面进行配置

server.conf 配置语法

指令名称 正则规则 目标文件
  • 指令名称 支持 rewrite 、 redirect 和 proxy。
  • 正则规则 用来命中需要作假的请求路径
  • 目标文件 设置转发的目标地址,需要配置一个可请求的 url 地址。

1. mock 静态假数据

rewrite ^\/api\/user$ /mock/sample.json

{
    "error": 0,
    "message": "ok",
    "data": {
        "username": "younth",
        "age": 25,
        "company": "taobao"
    }
}

2. mock 动态假数据

node 服务器可以通过 js 的方式提供动态假数据。动态数据本质是一个 route. rewrite ^\/api\/dynamic\/time$ /mock/dynamic.js

module.exports = function(req, res, next) {

  res.write('Hello world ');
  // set custom header.
  // res.setHeader('xxxx', 'xxx');
  res.end('The time is ' + Date.now());
};

// 更复杂的,可以直接引用其他模块,发送请求
var http = require('http');
var url = require('url');
var util = require('util');
var querystring = require('querystring');
// 通过nodejs来抓取线上的结果。这样就完成了动态获取线上数据的功能

module.exports = function(request, response, next) {

    var method = request.method;
    ...
};

3. proxy 到其他服务

proxy能力支持正则分组。支持post及get请求的proxy

proxy ^\/wmall\/privilege\/(.*)$  http://10.19.161.92:8059/wmall/privilege/$1

4. 重定向 redirect

redirect ^\/api\/taobao$ http://www.taobao.com