本地mock

152 阅读1分钟

一个项目前端与后端配置往往是一比三或者一比二,所以前端开发是比后端快的,这时候后端接口还没提供到你,这时候就可以考虑在本地开发使用mock,为了后续联调更快更精准。
使用koa

npm install nodemon koa koa-body koa-router --save-dev

在项目文件根目录 mkdir mock ,然后 cd mock 后 mkdir server.js

const Koa = require('koa');
const koaRouter = require('koa-router');
const KoaBody = require('koa-body');
KoaBody({
  multipart: true
})
const app = new Koa();
const router = new koaRouter();

require("./module/index.js")(router);

app.use(KoaBody()).use(router.routes()).use(router.allowedMethods())
let port = 1000;
app.listen(port, () => {
  console.log('mock is start port = ' + port);
})

mkdir module 文件夹,里面创建 index.js(用来自动引入当前文件下的mock接口文件)

const fs = require('fs');

module.exports = router => {
  try {
    console.log(__dirname);
    fs.readdir(__dirname, function (err, files) {
      console.log(files);
      files.forEach(item => {
        if (['index.js', 'README.md'].includes(item) || item.startsWith('.')) return;
        console.log('开始引入', item);
        require('./' + item)(router)
      })
    })
  } catch (e) {
    console.log(e.message, '请检查当前目录下的js文件是否正确');
  }
}

在module 文件创建第一个接口文件a.js

module.exports = (router) => {
  router.get('/a', async (ctx) => {
    ctx.body = {
      code: 0,
      data: '第一个mock接口'
    }
  })
}

就可以使用啦

在package.json加入启动mock的脚本

 "scripts": {
    "mock": "nodemon ./mock/server.js",
  },

最后:
因为项目是多人开发,引入文件风格因个人风格迥异,所以自动化引入就更加规范了代码风格,只需要定义接口路径即可,耦合度降低。