mockjs(接口服务代理)

mock官网:http://mockjs.com/

一、搭建一个练习项目

1.利用vue的项目脚手架进行搭建

命令:

vue create mock-demo

截图:

在这里插入图片描述

2.安装相关的依赖

命令:

#使用 axios 发送 ajax
npm install axios --save
#使用 mock.js 产生随机数据
npm install mockjs --save-dev
#使用 json5 解决json 文件,无法添加注释问题
npm install json5 --save-dev

二、学习mockjs

新建mock文件夹,新建testMock.js

mock语法定义
在这里插入图片描述

const Mock = require('mockjs') //导入mockjs以来模块
let id = Mock.mock("@id")//得到随机的id,字符串
// console.log(id);//测试
let obj = Mock.mock({id:'@id()', //得到随机的idusername:'@cname()',//随机生成中文名字date:'@date()',//随机生成日期avata:"@image('200x200','red','#fff','avatar')",//生成图片,参数:size,background,foreground,textdescrtption:"@paragraph()",//描述ip:"@ip()",//ip地址email:"@email()"//email
})
console.log(obj);

在这里插入图片描述

以上代码的随机生成位置,还需要自己去官方文档查看,谢谢!

三、在mockjs中使用json5的操作

通过上面 json5 模块的安装后,还需要相应的 vscode 插件

在这里插入图片描述

1.设置一个json5文件

在这里插入图片描述

2.设置一个js文件,通过 fs \ path 查询 之前设置的 json5 文件夹

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Kb0J1jjx-1599721543422)(C:\Users\wangyu123\AppData\Roaming\Typora\typora-user-images\image-20200910121003639.png)]

3.在mock文件夹下通过终端获取得到 “字符串形式的结构”

在这里插入图片描述

4.在testJSON5.js文件中引入 模块 json5,然后利用json的parse() 方法进行字符串转对象的形式输出

在这里插入图片描述

修改前后的对比:

在这里插入图片描述

_在vue项目中使用mock.js_通过devServer配置监听mock请求

1.在新建的vue.config.js文件中进行devServer的配置

module.exports = {devServer: {...,before: require('./mock/index.js')//引入mock/index.js},
}

2.在mock文件夹下,创建 index.js 并引入代码

const fs = require('fs') //文件名称
const path = require('path')//文件路径
const Mock = require('mockjs')//导入mock 依赖
const JSON5 = require('json5');//导入json5// 读取json文件
function getJsonFile(filePath){// 读取指定json文件const json = fs.readFileSync(path.join(__dirname,'./userinfo.json5'),'utf-8')// console.log(json);// 解析并返回return JSON5.parse(json)// console.log(obj);
}// 返回一个函数
module.exports = function(app){// 监听http请求app.get('/user/userinfo', function(rep,res){// 每次响应请求时读取 mock data 的json 文件// getJsonFile 方法定义了如何读取json 文件并解析成数据对象var json = getJsonFile('./userinfo.json5');// 将 json 传入 Mock.mock方法中,生成的数据返回给浏览器res.json(Mock.mock(json));});
}

3.在vue项目中使用mock.js_axios发送请求获取mock提供的数据

3.1 在项目文件夹的HelloWorld.vue文件夹中发送请求

代码设置为:

export default {name: 'HelloWorld',props: {msg: String},mounted:{axios.get('/user/userinfo').then(res => {console.log(res)    }).catch(err => {console.log(err)    })}
}

在这里插入图片描述

获取到数据为:

在这里插入图片描述

4.在vue项目中使用mock.js_mock移除(当后台接口已写好的时候移除)

4.1 通过设置 vue cli 的环境变量进行设置

先进行环境变量的判断:

在这里插入图片描述

在根目录设置 .env.development 文件 设置环境变量的去向值

在这里插入图片描述

5.在vue项目中使用mock.js_mock-json5-devServer-axios职责

在这里插入图片描述

6.在jQuery项目中使用mock.js_mock拦截请求的原理

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="IE=edge"><title>Document</title><script src="https://cdn.bootcdn.net/ajax/libs/jquery/2.2.4/jquery.min.js"></script><script src="http://mockjs.com/dist/mock.js"></script>
</head>
<body></body>
</html>
7.在jQuery项目中使用mock.js_使用mock
Mock.mock('/user/userinfo','get',{id:"@id()", //得到随机的idusername:"@cname()",//随机生成中文名字date:"@date()",//随机生成日期avata:"@image('200x200','red','#fff','avatar')",//生成图片,参数:size,background,foreground,textdescrtption:"@paragraph()",//描述ip:"@ip()",//ip地址email:"@email()"//email
})

6.2 发送 jQuery 的ajax 请求

<script src="./index.js"></script>
<script>$.ajax({url:'/user/userinfo',dataType:'json',success:(data) => {console.log(data);}})
</script>

在这里插入图片描述

8.在jQuery项目中使用mock.js_移除mock

8.1 : 直接注释或删除引入的mock.js文件

8.2:在编译的mockjs文件中设置判断

在这里插入图片描述

在这里插入图片描述

```

在这里插入图片描述

8.在jQuery项目中使用mock.js_移除mock

8.1 : 直接注释或删除引入的mock.js文件

8.2:在编译的mockjs文件中设置判断

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/247893.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MD5算法原理

MD5&#xff08;单向散列算法&#xff09; 的全称是Message-Digest Algorithm 5&#xff08;信息-摘要算法&#xff09;&#xff0c;经MD2、MD3和MD4发展而来。MD5算法的使用不需要支付任何版权费用。MD5功能&#xff1a;输入任意长度的信息&#xff0c;经过处理&#xff0c;输…

python第五次作业——陈灵院

习题1&#xff1a;读入文件pmi_days.csv&#xff0c;完成以下操作&#xff1a;1.统计质量等级对应的天数&#xff0c;例如&#xff1a;优&#xff1a;5天良&#xff1a;3天中度污染&#xff1a;2天2.找出PMI2.5的最大值和最小值&#xff0c;分别指出是哪一天。 import csv impo…

iOS 二叉树相关算法实现

什么是二叉树&#xff1f; 在计算机科学中&#xff0c;二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”和“右子树”&#xff0c;左子树和右子树同时也是二叉树。二叉树的子树有左右之分&#xff0c;并且次序不能任意颠倒。二叉树是递归定义的&#xff0c;所…

vux 组件库首次使用安装

1、首先通过脚手架新建一个项目&#xff0c;过程略。 创建完项目后&#xff0c;在项目里安装vux&#xff0c; 通过命令 npm install vux --save 安装 2、安装vux-loader&#xff0c; 通过命令 npm install vux-loader --save-dev 安装&#xff08;vux文档没说明&#xff09; 3、…

爬取豆瓣top250

#xpath #第一种方法 可在开发者工具中找到标签&#xff0c;右键copy xpath&#xff0c;有时需去掉tbody标签 #第二种方法 简单学习xpath&#xff0c;自己书写&#xff0c;掌握基本语法即可&#xff0c;简单的层级关系#先将csv文件以记事本打开&#xff0c;更改编码为ASNI&…

LED音乐频谱之点阵

转载请注明出处&#xff1a;http://blog.csdn.net/ruoyunliufeng/article/details/37967455 一.硬件 这里的LED选择直插的雾面LED&#xff0c;亮度可以还不失美观。注意每行要加上限流电阻。74HC138&#xff08;三八译码器&#xff09;作为列选&#xff0c;每行都连着74HC595&a…

上架相关——App Store 上架流程

说实话&#xff0c;公司要上架一个自己做的一个小项目。为了完成这个任务&#xff0c;菜鸟的我一遍找资料一遍跟着做&#xff0c;一遍修改错误一遍查找解决方案。网上的资料大部分都是2015年以前的资料&#xff0c;资料有点不够过时&#xff0c;而且步骤配图也不是很详细&#…

上架相关——appstore 更新app版本

注&#xff1a;此片文章是基于app已经上架&#xff0c;也就是证书都已经配置好的前提下。 首先是还是app打包 修改版本号 修改project处的pp文件 检查无误后打包打包完成后upload to app store 漫长的等待。。 上传到appstore进入iTunesConnect 选择我的app 选择对应app点…

iOS开发 蓝牙技术4.0详解

前言 前端时间,同学在做项目过程中遇到关于蓝牙方面的问题,今天我就给大家进行详细的进行讲解下蓝牙在iOS开发中的具体实现.在介绍蓝牙前,大家要搞清楚什么是蓝牙? 什么是蓝牙? 随着蓝牙低功耗技术BLE&#xff08;Bluetooth Low Energy&#xff09;的发展&#xff0c;蓝牙技术…

前端面试题(五)

position的属性有哪些&#xff1f; 1、absolute生成绝对定位的元素&#xff0c;相对于值不为 static的第一个父元素进行定位。 2、fixed &#xff08;老IE不支持&#xff09;生成绝对定位的元素&#xff0c;相对于浏览器窗口进行定位。 3、relative生成相对定位的元素&#xff…

qrcode.js 二维码生成器

二维码生成 并显示&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml" xml:lang"ko" …

AVPlayer设置从哪儿开始播放

avplayer 播放视频 首先介绍几个方法吧和属性吧。 - (id)addPeriodicTimeObserverForInterval:(CMTime)interval queue:(dispatch_queue_t)queue usingBlock:(void (^)(CMTime time))block 这个方法可以用于跟新进度条。 - (void)seekToTime:(CMTime)time completionHandler:(v…

老男孩爬虫实战密训课第一季,2018.6,初识爬虫训练-实战1-爬取汽车之家新闻数据...

1.爬虫介绍 编写程序&#xff0c;根据URL获取网站信息 2.用到的库 requests库 bs4库 3.内容及步骤 4.代码 import requests import os from bs4 import BeautifulSoup # 1.下载页面 ret requests.get(urlhttps://www.autohome.com.cn/news/) ret.encoding ret.apparent_encod…

Table 表格导出功能

<Card class"clearfix"><p slot"title"><Icon type"ios-list"></Icon>收入信息</p><!-- 导出1 --><div class"daochu1"><!-- 导出按钮 --><div class"search"><B…

动态添加后的数据转换 — 后台接收数据

let data this.projectPersonnel.map(item > {let obj {}obj.member item.people.map(info > {return info.id})obj.member JSON.stringify(obj.member)obj.projectId idobj.teamId item.name.idreturn obj})

iOS开发--地图与定位

iOS开发--地图与定位 概览 现在很多社交、电商、团购应用都引入了地图和定位功能&#xff0c;似乎地图功能不再是地图应用和导航应用所特有的。的确&#xff0c;有了地图和定位功能确实让我们的生活更加丰富多彩&#xff0c;极大的改变了我们的生活方式。例如你到了一个陌生的地…

iview组件库 - 穿梭栏设置

<Modalv-model"modal1"title"项目药品上下架维护"width"1020":mask-closable"false"on-ok"addOk()"><Col span"36"><Selectfilterableon-change"onChangeProject"placeholder"请先…

如何优雅地使用Sublime Text3

Sublime Text&#xff1a;一款具有代码高亮、语法提示、自动完成且反应快速的编辑器软件&#xff0c;不仅具有华丽的界面&#xff0c;还支持插件扩展机制&#xff0c;用她来写代码&#xff0c;绝对是一种享受。相比于难于上手的Vim&#xff0c;浮肿沉重的Eclipse&#xff0c;VS…

Windows 聚焦的锁屏壁纸设置为桌面壁纸

需求&#xff1a; Windows的锁屏壁纸偶尔遇到非常喜欢的壁纸&#xff0c;想设置为桌面壁纸。 步骤如下&#xff1a; 1. “Windows 聚焦”的锁屏壁纸都保存在隐藏文件夹 --- Assets里。 a. 打开“资源管理器 b. 在地址栏复制粘贴下方路径后按回车键&#xff0c;即可快速跳转至这…

Chrome 控制台的console用法收集

Chrome 控制台console的用法 大家都有用过各种类型的浏览器&#xff0c;每种浏览器都有自己的特色&#xff0c;本人拙见&#xff0c;在我用过的浏览器当中&#xff0c;我是最喜欢Chrome的&#xff0c;因为它对于调试脚本及前端设计调试都有它比其它浏览器有过之而无不及的地方。…