Miss any of our Open RFC calls?Watch the recordings here! »

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即可,具体使用可以看上面的‘示例’

Install

npm i koa-mock-md

DownloadsWeekly Downloads

2

Version

1.0.4

License

ISC

Unpacked Size

7.37 kB

Total Files

9

Last publish

Collaborators

  • avatar