Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    biz-mockpublic

    biz-mock

    NPM version NPM downloads total NPM license Build Status bitHound Overalll Score Coverage Status Dependency Status devDependency Status

    biz-mock支持通过json静态数据,随机模板数据,cookie原酸数据,生成模拟数据

    配合独立的server,能够减少前端开发对后端环境的依赖

    NPM Stat

    功能

    • 拦截ajax请求
    • 三种mock数据源,json,模板和server
    • 支持自定义拦截器

    安装

    npm install biz-mock --save
    

    使用

    var mock = require('biz-mock');
    

    biz-mock首先需要初始化配置文件,以及mock静态文件目录

    初始化完成后,开启mock功能

    拦截ajax请求

    API

    initFolder()

    initFolder([destPath])

    向指定路径复制配置文件以及mock静态文件目录

    配置文件mockConfig.json

    /mock/config/mockConfig.json
    

    mock静态文件目录:

    //mock jsondata folder
    /mock/data/
    
    //mock templatedata folder
    /mock/template/
    

    start()

    start([options])

    初始化mock配置,启动mock功能

    options

    • as:拦截ajax请求的后缀,默认是'.action'。可以拦截多种后缀的ajax,在as参数中多个后缀用,分隔。如请求不带.*后缀,可以配置成空字符串。

    • mockConfig:配置文件json对象,默认路径是options.root + /mock/config/mockConfig.json

    • silent:是否打印各种log,默认是false

    • methods:拦截ajax请求的method,默认是['post', 'get']

    • root:base路径,默认是process.cwd()

    dispatch()

    dispatch(req, res)

    拦截ajax请求,并返回mock数据

    mockConfig

    mockConfig.json:

    {
    "dataSource": ["server", "json", "template"],
    "json": {
        "path": "/mock/data/",
        "wrap": false
    },
    "server": {
        "host": "http://localhost:8080/",
        "serverParams": {
            "index": 1
        },
        "statusCode": [200],
        "rejectUnauthorized": false,
        "secureProtocol": "SSLv3_method",
        "cookie": "",
        "proxy": ""
    },
    "template": {
        "path": "/mock/template/"
    }
    

    }

    mock数据源

    dataSource是mock数据源的集合,目前有原生提供四种数据源cookie,template和json以及mockserver

    数据源在集合中的排序规定了数据源的优先级,索引越小,优先级越高。如上面例子中,会首先查找cookie数据源,如果cookie数据源没有数据,接着是mockserver数据源,如果还没有,那么会查找template数据源,仍然没有,继续查找json数据源。四种数据源都没有的话,会返回404

    1.json

    json是静态数据源

    "json": {
    	"path": "/mock/data/",
    	"wrap": false
    }
    

    path:静态数据源文件目录

    wrap,数据外层是否被包裹(兼容处理)

    包裹格式:

    {
        "enabled": true,
        "value": "success",
        "success": {}
    }
    

    2.template

    template是通过数据模板生成模拟数据

    生成器选用http://mockjs.com/

    3.server

    server是通过在配置文件中配置host,cookie,额外参数serverParams等,实现从其他服务中获取请求数据的功能

    配置文件如下:

    "server": {
        "host": "http://localhost:8080/",
        "serverParams": {
            "index": 1
        },
        "statusCode": [200],
        "rejectUnauthorized": false,
        "secureProtocol": "SSLv3_method",
        "cookie": "",
        "proxy": ""
    }
    
    • host:访问域名,支持http和https
    • serverParams: 可能额外需要的参数
    • statusCode: 配置需要返回结果的响应码,默认是200,如果服务的响应码不在此列表中,则从其他mock源获取数据
    • secureProtocol:SSL协议,根据安装的OpenSSL设置。比如SSLv3_method,即设置为SSL第三版。具体可参考SSL_METHODS
    • cookie: cookie
    • proxy:代理

    json和template路径与请求路径一致,例:

    请求:/query/table.action

    json路径/mock/data/query/table.json

    template路径/mock/data/query/table.template

    如何自定义mock数据源

    mock数据源实现getData方法

    exports.getData = function(url, req, res, cb){
    	return data
    }
    

    方法参数:

    • url:http请求,注意,不带后缀
    • req: request
    • res: response
    • cb: biz-server采用co控制异步操作的流程,自定义数据源会被thunkify,cb是co的回调函数,cb(error, data)

    方法返回:

    • json数据

    另外需要在/mock/config/mockConfig.json的dataSource注册mock数据源

    更新日志

    0.0.5

    • 修复suffix设置为''时存在的问题
    • 修复suffix逻辑中正则表达式匹配不准确的问题
    • 修复cookie模式下当request header中content-type为application/json时出错的情况
    • 优化/config/mockConfig.json文件的目录结构,将其移入/mock/config/mockConfig.json
    • 修改initFolder逻辑,不再生成/config目录
    • 初始化时,当未设置config文件路径时,优先使用/mock/config/mockConfig.json, 同时如果新的不存在则兼容老的路径,并给出dperaciate提示。建议升级后进行迁移,简化工程目录
    • 新增配置项的热更新,避免切换数据源时需要重新启动应用
    • 代码格式化

    0.1.1

    • 把cookie mock源升级为server源,通过在配置文件中配置host,cookie,额外参数serverParams等,实现从其他服务中获取请求数据的功能
    • server源可以用列表方式配置多种配置,会依次尝试直至获取结果
    • 更改package.json的test脚本,使windows环境也能启动

    Keywords

    install

    npm i biz-mock

    Downloadsweekly downloads

    14

    version

    1.0.1

    license

    MIT

    repository

    githubgithub

    last publish

    collaborators

    • avatar