koa-mock-md

1.0.4 • Public • Published

该koa中间件是通过拦截http请求来模拟接口数据

通用使用

const Koa = require('koa');
const mock = require('koa-mock-md');
const app = new Koa();

// 引入mock中间件
app.use(mock({
  mock: true, // 是否开启mock
  route: '/api', // 匹配路由, 可以是正则表达是,函数,和字符串
  root: './mock', // 本地存放mock js目录
  bodyString: true // 返回的数据格式是否是字符串
}));

app.listen(3000);

示例

  • 假设请求接口路由为/api/user/getUserInfo
  • 本地配置模拟文件yourproject/mock/api/user/getUserInfo.js,可以针对不同的接口要求定制返回数据:
  1. 正常返回数据
  console.log(ctx.query);
  next(null, {
    code: 1,
    data: {
      id: 1,
      username: 'showjoy',
      age: 28,
      sex: male
    },
    message: 'success'
  })
  1. 错误
  let err = new Error('nono');
  err.statusCode = 300; // 不设置,默认是500
  next(err);
  1. 定制返回头
  ctx.set('Set-Cookie', ['a=3']);
  // or
  ctx.cookies.set('name', 'showjoy');
  
  next(null, {
    code: 2,
    data: 'b',
    message: 'a'
  });

Bucky使用

安装

 npm i @lianjia/koa-mock-md

在server/src/services目录创建mock.js

import mock from '@lianjia/koa-mock-md';
import path from 'path';

export default () => mock({
  // 需要mock的环境 development
  mock: ['development'].includes(process.env.NODE_ENV),
  // 这里可以根据路径自定义返回需要mock的路径
  // 可以按目录来分模块mock,也可单独,全局匹配
  route: p => /^\/api/.test(p),
  // mock文件路径
  root: path.join(__dirname, '../../../mock'),
});

mock接口文件

比如client端定义的接口:

/**
 * 基础配置
 */
@GET('v1/config/base')
fetchConfigMap() {
}

那么在mock文件夹中创建一个v1/config/base.js即可,具体使用可以看上面的‘示例’

Dependencies (0)

    Dev Dependencies (4)

    Package Sidebar

    Install

    npm i koa-mock-md

    Weekly Downloads

    1

    Version

    1.0.4

    License

    ISC

    Unpacked Size

    7.37 kB

    Total Files

    9

    Last publish

    Collaborators

    • showjoy