轻松获取mock.js数据

为什么要使用mock.js?

在前后端分离的情况下,前端想要独立进行调试,没有测试数据怎么可以呢!mock.js正是解决这个问题。mock.js能够生成随机数据,拦截 Ajax 请求,使用mock.js生成模拟数是非常好的选择。

我在接触mock.js时也是遇到了很多问题,例如:在服务器生成数据、获取数据时遇到跨域问题等等。当时搜了很多资料,浏览了一些文章,最后也顺利解决了。今天就在这个跟大家一起分享下。

我是在node.js环境下使用mock.js生成数据的。

首先需要安装node.js,这里就不介绍了,参考官网很快就可以搞定node.js安装

1、安装好node.js之后,新建一个mockjs文件夹,在该目录下使用npm/cnpm进行初始化,会生成一个package.json文件。(在初始化过程中的配置可忽略)。

npm init


2、继续在当前目录下安装express,安装好了之后会生成一个node_modules文件夹。

npm install express --save

3、接下来我们安装mock.js了,不懂mock.js怎么使用的小伙伴可以去官网看看文档 mock.js官网

npm install mockjs

4、新建一个server.js文件,运行node server.js,通过在本机浏览器地址栏访问 localhost:3000 就可以得到数据。

const express = require('express');   // 引入express
const Mock = require('mockjs');   // 引入mockjs
const app = express()
app.all('/', function(req, res){
  res.json(Mock.mock({
    'list|1-10':[{
      'id|+1':1,
      'name|1': '@cname',
      'eat|1': ["西瓜","苹果","香蕉","草莓"],
      '其他|2-4':{
        "爱好": "跑步",
        "爱好": "唱歌",
        "地址": "上海",
        "工具": "汽车"
      },
    }]
  }))
});
app.listen(3000,()=>{
  console.log('running in 3000')
})

在这里插入图片描述
5、如果我们想要通过其他页面去访问该地址拿到数据,提示跨域问题该怎么解决?

<!DOCTYPE html>
<html lang="zh">
<head>
  <meta charset="UTF-8">
  <title>Page Title</title>
</head>
<body>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
  <script>
    $.ajax({
      url: 'http://localhost:3000/',
      type: 'get',
      success: function(data){
        console.log
      }
    })
  </script>
</body>
</html>

在这里插入图片描述
6、在这里我们使用jsonp的方式去解决跨域问题,我们需要对请求的ajax进行修改,修改如下。

$.ajax({
      url: 'http://localhost:3000',
      type: 'get',
      dataType: 'jsonp',
      jsonp:'callback',
      jsonpCallback: 'jsonpCallback',
      success: function(data){
        console.log(data)
      }
 })

7、修改server.js中的代码,然后就可以解决跨域问题了。

app.all('/', function(req, res){
  let data = Mock.mock({
    'list|1-10':[{
      'id|+1':1,
      'name|1': '@cname',
      'eat|1': ["西瓜","苹果","香蕉","草莓"],
      '其他|2-4':{
        "爱好": "跑步",
        "爱好": "唱歌",
        "地址": "上海",
        "工具": "汽车"
      },
    }]
  })
  res.writeHead(200, { 
    'Content-Type': 'application/json;charset=utf-8' 
  });
  res.end( "jsonpCallback(" + JSON.stringify(data) + ")" );
});

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mock.js可以动态生成各种类型的数据,包括数字、字符串、布尔值、数组、对象等等。以下是使用Mock.jsmock动态生成数据的步骤: 1. 安装Mock.js 可以通过npm安装Mock.js,命令如下: ``` npm install mockjs ``` 也可以在HTML文件中直接引用Mock.js的CDN链接: ``` <script src="https://cdn.bootcdn.net/ajax/libs/Mock.js/1.0.1-beta3/mock-min.js"></script> ``` 2. 定义Mock数据模板 Mock.js的核心是数据模板,它是一个JavaScript对象,用来描述Mock数据的结构和类型。例如,以下是一个简单的Mock数据模板: ``` var data = { name: '@cname', // 随机生成中文名字 age: '@integer(18, 60)', // 随机生成18到60之间的整数 gender: '@boolean', // 随机生成布尔值 hobbies: ['@word', '@word', '@word'] // 随机生成三个英文单词组成的数组 }; ``` 3. 使用Mock数据模板生成Mock数据 使用Mock.js的`Mock.mock()`方法可以根据数据模板生成Mock数据,例如: ``` var mockData = Mock.mock(data); ``` `mockData`就是根据`data`模板生成的Mock数据。 4. 使用Mock数据 生成Mock数据后,可以将其用于测试、演示或其他目的。例如,将Mock数据渲染到页面中: ``` document.getElementById('name').innerHTML = mockData.name; document.getElementById('age').innerHTML = mockData.age; document.getElementById('gender').innerHTML = mockData.gender ? '男' : '女'; document.getElementById('hobbies').innerHTML = mockData.hobbies.join(', '); ``` 以上就是使用Mock.jsmock动态生成数据的基本步骤。Mock.js还支持更多高级功能,例如数据占位符、数据生成规则、拦截Ajax请求等等,可以根据需要进行学习和使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值