日拱一卒-如何mock数据

在项目的开发中,联调是屡见不鲜,并且也是比较费时间的一个环节。
在先后端分离的项目当中,咱们每每是先约定好接口与数据,再进行开发。
这个时候,若是前端能本身启动一个服务,按照必定的规则生成假数据,那么联调起来将会方便不少。
目前市面上有不少mock数据的工具,而我采用的是mockjs。
首先要明白一点,mockjs并不能启动一个服务,它只是一个生成数据的工具。咱们须要本身启动服务,接收请求,再把数据返回给前端。
这里我采用的是比较容易用的express。
express的安装就再也不赘述。说一下几个关键的点。
在项目的路由文件中,咱们能够这样来mock数据:前端

// 使用 Mock
var Mock = require('mockjs')
var data = Mock.mock({
  // 属性 list 的值是一个数组,其中含有 1 到 10 个元素
  'list|1-10': [{
    // 属性 id 是一个自增数,起始值为 1,每次增 1
    'id|+2': 1
  }]
})

这就生成好了假数据,而后就要经过路由返回出去,写法是这样子的:vue

router.get('/', function (req, res, next) {
  // 如下四行是用来设置返回的响应头,用来解决跨域问题
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Methods", "PUT, GET, POST, DELETE, OPTIONS");
  res.header("Access-Control-Allow-Headers", "X-Requested-With");
  res.header("Access-Control-Allow-Headers", "Content-Type");
  // 这一行是将构造的假数据进行返回
  res.send(data);
  res.render('index', { title: 'Express' });
});

如此,咱们便成功mock好了数据,接下来就是请求接口了。
在vue-cli3中,vue.config.js文件中对本地服务器进行设置:node

module.exports = {
  devServer: {
    proxy: {
      // 这里的key值我也没搞懂为何要这样子写,以后再研究一下
      [""]: {
        // 假设咱们的mock服务启动在3000端口
        target: `http://127.0.0.0:3000`,
        // 这里是用于设置跨域
        changeOrigin: true,
        // 这里的路径重写实际上我也没搞懂是什么意思,以后再研究
        pathRewrite: {
          ['^/']: ''
        }
      }
    },
  }
}

改写完配置,记得重启服务,以后就能够快乐地玩耍了。
mock服务可使用nodemon启动,这样子服务只要有了更改就会自动重启,高效不少。vue-cli

相关文章
相关标签/搜索