美文网首页让前端飞
json-server结合mock.js 模拟后端数据

json-server结合mock.js 模拟后端数据

作者: 该帐号已被查封_才怪 | 来源:发表于2019-01-31 11:08 被阅读75次

一、json-server相关

1、全局安装json-server
npm install -g json-server
2、在cmder所激活的目录下新建一个文件 jsonserver.json

{
  "posts": [
    {
      "id": 1,
      "title": "json-server",
      "author": "简书 该账户已被查封"
    }
  ],
  "comments": {
    "data": [
      {
        "log_date": "2018-01-25",
        "sum_user_ticket": 10,
        "sum_team_ticket": 20,
      },
      {
        "log_date": "2018-01-26",
        "sum_user_ticket": 19,
        "sum_team_ticket": 50,
      }
    ],
    "errmsg": "",
    "errno": "0"
  },
  "profile": {
    "name": "简书 该账户已被查封"
  }
}

3、执行json-server --watch jsonserver.json 即可打开相应的网址,看到对应的数据;

image.png

注意:这里有个坑,就是如果只是请求这些数据时(也就是要这些数据时)应该使用get请求方式而不是post等请求方式,否则这里面的数据会做相应变化,因为json-server支持这些请求方式且会做相应处理;

二、 mock.js相关

1、安装mock.js
npm install mockjs
2、创建mock.js 文件
mock.js 文件 我弄了两种生成数据的方式,一种是根据模版生成模拟数据,另一种是利用js 循环加Mock.Random 随机生成数据:

var Mock = require('mockjs');
// console.log(Mock);
// Mock.setup({
//   timeout: '1200-1600' // 设置响应时间 毫秒
// });
let Random = Mock.Random;
let template = {
  'title': 'Syntax Demo',
  'string1|1-10': '★',
  'string2|3': 'value',
  'number2|1-100': 100,
  'number4|123.1-10': 1,
  'boolean2|1-2': true,
  'object2|2': {
    '310000': '上海市',
    '320000': '江苏省',
    '330000': '浙江省',
    '340000': '安徽省'
  },
  'array1|1': ['AMD', 'CMD', 'KMD', 'UMD'],
  'array2|1-10': ['Mock.js'],
  'array3|3': ['Mock.js'],
  'function': function () {
    return this.title
  },
  'errmsg': "json-server或mock.js错误",
  'errno': "0",
};
var templateed = Mock.mock(template); // 根据模版生成 模拟数据

module.exports = function () {
  var res = {
    nottemplate: {
      data: [],
      errmsg: "json-server或mock.js错误",
      errno: "0"
    },
    template: templateed,
  };

  var imagesArray = [1, 2, 3].map(x => Random.image('200x100', Random.color(), Random.word(2, 6)));

  for (var i = 0; i < 5; i++) {
    res.nottemplate.data.push({
      id: i,
      title: Random.cword(8, 20), // 随机生成中文汉字
      desc: Random.cparagraph(0, 10).substr(0, 40),// 随机生成一段中文文本
      tag: Random.cword(2, 6),
      views: Random.integer(100, 5000), // 整数
      images: imagesArray.slice(0, Random.integer(1, 3)), // 1-3 个图片地址数组
      date: Random.date(),
      float: Random.float(60, 100),// 小数
      integer: Random.integer(60, 100),//整数
      range: Random.range(60, 65),// 从60到100的数值
      image: Random.image('200x100', '#396'),// 图片大小、图片颜色,
      color: Random.color(),
      county: Random.county(true), //县
      log_date: Random.date(),
      sum_team: Random.integer(1, 100),
      add_team_sum: Random.integer(1, 100),
      team_avg_people: Random.float(1, 100),
      active_team_sum: Random.integer(1, 100),
      team_avg_active_people: Random.float(1, 100),

    })
  }

  return res
}


3、执行 json-server --watch mock.js -p 3001
提示下,这里我使用了-p 指定了端口3001,因为之前json-server 默认使用3000端口 ,为了避免冲突及报错 所以换了个端口;

其实除了mock.js,还有强大的国外的 faker.js

三、使用 Zan Proxy 的mock数据

image.png
Zan Proxy 的mock数据没有json-server和mock.js强大,具体我就不介绍了 ,可见官方文档, https://youzan.github.io/zan-proxy/book/
另外值得一提的是,这里有个坑,就是安装证书后https://youzan.github.io/zan-proxy/book/quick-start/cert.html 使用SwitchyOmega
做代理时, windows系统谷歌浏览器会 提示“ 您的连接不是私密连接”
image.png
此时,是因为你没有安装证书或者证书安装步骤不正确,正确的步骤是 image.png image.png image.png

当时我也是参考了 使用Charles代理工具导致电脑无法正常访问网站(您的连接不是私密连接)

四、推荐扩展资料

json-server 支持过滤数据、排序、分隔、检索等功能,可以看官方文档或下面的资料
1、 用JSON-server模拟REST API
2、 介绍两大神器!——使用json-server和faker.js模拟REST API

相关文章

  • json-server模拟数据

    json-server可以模拟后端提供的数据,让前端流程走通,实现前后端分离json-server模拟数据 大概流...

  • json-server结合mock.js 模拟后端数据

    一、json-server相关 1、全局安装json-servernpm install -g json-serv...

  • 使用mockjs 随机生成模拟接口数据

    上一篇 我们用json-server做了假数据 json-server模拟后端接口https://www.jian...

  • 2018-12-06 mock.js的使用

    目的 mock.js能够拦截Ajax请求,生成模拟数据进行接口调试,模拟了前后端调试的环境,使得前端开发能够独立于...

  • 模拟后端数据json-server

    简介 json-server是一个很好的模拟后端数据接口的工具。只需要提供一个json文件,或者写几行简单的js脚...

  • mockjs简介和应用

    一、说明 mock.js 是一款模拟数据生成器,帮助前端人员独立于后端进行开发,帮助编写单元测试, 前后端合作期间...

  • 下拉刷新,触底加载

    数据 db.json 用json-server启动服务器,模拟数据注意事项 微信小程序上线后,后端必须是https...

  • 2019-11-28

    关于mockjs模拟数据的使用 一、 本文主要结合webpack+vue+mockjs,前后端分离,模拟后端接口数...

  • Mock.js使用

    一、介绍 Mock.js[http://mockjs.com/]是用来模拟产生一些虚拟的数据,可以让前端在后端接口...

  • mock模拟ajax请求

    Mock.js 是一款模拟数据生成器,旨在帮助前端攻城师独立于后端进行开发,帮助编写单元测试。提供了以下模拟功能:...

网友评论

    本文标题:json-server结合mock.js 模拟后端数据

    本文链接:https://www.haomeiwen.com/subject/xvgcsqtx.html