Neatly Packaged Modules

    menreiki-plugin-proxy

    1.0.0-dev.1 • Public • Published

    menreiki的开发服务器代理能力支持,支持express类型的服务器

    安装

    npm install menreiki-plugin-proxy -D

    使用配置

    menreiki.config.js中,添加如下代码:

    exports.plugins = [
      'menreiki-plugin-proxy'
    ];

    配置项

    暂无

    配置文件

    请在项目的根目录添加proxy.config.js,如果插件添加到了menreiki.config.js,但是没有proxy.config.js那么会报错

    典型格式:

     
    module.exports = function(mockLocal) {
      return [
        [
          '**/*.json', // include, glob rule
          (req, res) =>
            mockLocal(req, res, { mockPath: '/mock', delay: 20 }),
          '**/*hot-update.json', // exclude
        ],
      ];
    };
     

    说明: 插件会根据配置的数组,按顺序进行查找匹配,一旦匹配就使用对应的处理函数(middleware)

    一个典型的配置

    包含3个部分,分别对应数组的0,1,2元素:

    • 匹配规则(基于glob表达式,使用minimatch包),必选项。 满足这个规则才可能使用对应的处理逻辑
    • 处理逻辑,目前提供了2种: mockLocalmockRemote,分别是module.exports对应函数的第一个参数和第二个参数
    • 排除规则(基于glob表达式,使用minimatch包),非必选。 如果设置了这个规则,那么如果传入url满足了这个规则,这个配置也是不能被匹配的。

    所以一个配置要被使用,需要满足: 匹配规则匹配上,排除规则不匹配或者没设置

    mockLocal

    mockLocal指的是从本地读取mock数据进行返回,默认的menreiki项目采用这种方式

    其签名为

    function (req,
      res,
      options = {
        mockPath: '/mock',
        delay: 100,
        cors: true,
        exact: false
      }
    ) {
     
      }

    所以我们在proxy.config.js的同样目录下添加一个mock目录,里面的文件格式对应的就是请求的接口。

    比如请求了/platform/getUser.json,那么我们可以在mock目录下,新增子目录platform,然后在下面添加getUser.json文件。代理会自动将结果返回。

    如果我们想要动态地根据输入去响应请求,那么可以将文件变为getUser.js

    这时候支持2种方式:

    • 模块导出一个对象
    • 模块导出一个函数

    第一种方式下,我们可能不关注入参,只想动态随机产生结果。 第二种方式下,可能我们会关注输入的值,想要根据输入有不同的相应

    举例来说:

    module.exports = function(req, res, urlObject) {
      // urlObject是通过`url` npm包解析的包含query的对象
    }
     

    mockRemote

    mockRemote指的是将请求代理到远程服务器上去

    一个典型的使用方式:

     
    module.exports = function(_, mockRemote) {
      return [
        [
          '**/*.json', // include, glob rule
          (req, res) =>
            mockRemote(req, res, { target: 'http://target.net' }),
          '**/*hot-update.json', // exclude
        ],
      ];
    };
     

    更多选项,请参考http-proxy使用文档

    Install

    npm i menreiki-plugin-proxy

    DownloadsWeekly Downloads

    1

    Version

    1.0.0-dev.1

    License

    MIT

    Unpacked Size

    11.3 kB

    Total Files

    6

    Last publish

    Collaborators

    • bloody-ux