JavaScript之MockJS快速入门(超详细)

一时失言乱红尘 2022-12-11 07:57 528阅读 0赞

什么是MockJS

在前后端分离的开发环境中,前端同学需要等待后端同学给出接口及接口文档之后,才能继续开发。而MockJS可以让前端同学独立于后端同学进行开发,前端同学可以根据业务先梳理出接口文档并使用MockJS模拟后端接口。那么MockJS是如何模拟后端接口的呢?MockJS通过拦截特定的AJAX请求,并生成给定的数据类型的随机数,以此来模拟后端同学提供的接口。

准备工作

首先安装MockJS,安装axios是为了发送AJAX请求测试模拟的接口,使用其他方式如原生AJAX请求或$.ajax都是可以的,使用其他方式发送AJAX请求无需安装axios。

  1. npm install mockjs --save
  2. npm install axios --save

在main.js中加入使mock生效
在这里插入图片描述

正式开始

MockJS有两种方式定义模拟接口返回的数据,一种是使用数据模板定义,这种方式自由度大,可以自定义各种随机的数据类型,一种是使用MockJS的Random工具类的方法定义,这种方式自由度小,只能随机出MockJS提供的数据类型。


数据模板的格式为 ‘属性名|生成规则’:‘属性值’ ,生成规则决定了生成的数据的属性值。 生成规则一共有7种,分别是:

  1. 'name|min-max': value
  2. 'name|count': value
  3. 'name|min-max.dmin-dmax': value
  4. 'name|min-max.dcount': value
  5. 'name|count.dmin-dmax': value
  6. 'name|count.dcount': value
  7. 'name|+step': value

在这里插入图片描述

代码示例:

  1. // 引入express, mockjs
  2. const express = require('express');
  3. const Mock = require('mockjs');
  4. // 创建一个express服务器的对象
  5. const app = express();
  6. // 设置跨域问题
  7. app.all("*", (req, res, next)=>{
  8. // 设置任何域名都可以请求我们的服务器
  9. res.header("Access-Control-Allow-Origin", "*");
  10. // 设置请求的的方式
  11. res.header("Access-Control-Allow-Methods", "GET,POST,PUT,DELETE");
  12. // 设置默认请求头和字符编码格式
  13. res.header("Content-type", "application/json;charset=utf-8");
  14. next()
  15. })
  16. // 创建了一个 /test 的接口,get请求形式的接口
  17. app.get("/test", (req, res) => {
  18. // 调用Mock对象的mock方法来生成随机数据
  19. // const data = Mock.mock({
  20. // "product_id|+2": 1
  21. // })
  22. Mock.Random.extend({
  23. status: function(){
  24. // 编写代码完成状态数据的设置并返回
  25. const arr = ["已收货", "未收货", "已付款", "未付款", "已评价"]
  26. return this.pick(arr)
  27. }
  28. })
  29. const data = Mock.mock({
  30. "list|5":[
  31. {
  32. // "product_id|+2": 1,
  33. // "name|1-3":"jack",
  34. // "money|1-100.2-6": 1,
  35. // "isPass|1":true,
  36. // "myDate": '@date()',
  37. // "name":"@cname",
  38. "myStatus": "@status()",
  39. }
  40. ]
  41. })
  42. res.send(data);
  43. })
  44. // 让我们的服务器在某个端口运行
  45. app.listen(3000);
  46. console.log("服务器已经运行在 http://localhost:3000")

" class="reference-link">Mock.mock template 形式在这里插入图片描述

在这里插入图片描述

Mock.mock function 形式

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

自定义宽展函数

在这里插入图片描述
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,528人围观)

还没有评论,来说两句吧...

相关阅读