首页 > 其他分享 >Mock学习

Mock学习

时间:2023-04-01 16:13:31浏览次数:36  
标签:axios require json5 学习 json Mock mock

mock原理图

 

mock环境配置

1:vue create mock-demo(本地用vue3)

2:npm install axios --save

3:npm install mockjs --save-dev

4:npm install json5 --save-dev

5:进VS Code中下载json5 syntax插件

 

代码配置部署

1:进入mock-demo目录

2:文件结构与测试代码如下

 

 3:各文件如下

//useInfo.json5
{
  id: "@id()",
  username: "@cname()",
  date: "@date()",
  avatar: "@image('200x200', 'red', '#fff', 'avatar')",
  description: "@paragraph()",
  ip: "@ip()",
  email: "@email()",
}


// index.js
const fs = require('fs')
const path = require('path')
const JSON5 = require('json5')
const Mock = require("mockjs")

function getJsonFile(filePath) {
  var json = fs.readFileSync(path.resolve(__dirname, filePath), 'utf-8')
  // console.log(json)
  return JSON5.parse(json) 
}

module.exports = function(app) {
  if (process.env.Mock == 'true') {     app.get('/user/userInfo', function(rep, res) {       var json = getJsonFile('./userInfo.json5')         res.json(Mock.mock(json))     })   } }
// vue.config.js
module.exports = {
  devServer: {
    before: require('./mock/index.js')
  }
}


// HelloWorld.vue
<template>
  <div class="hello">
   
  </div>
</template>

<script>
import axios from 'axios'

export default {
  name: 'HelloWorld',
  mounted(){
    axios.get('/user/userInfo').then((res) => {
      console.log(res)
    }).catch((err) => {
      console.log(err)
    })
  }
}
</script>

<style scoped>
</style>

 

4:在项目根目录执行npm run serve,进入对应网页观看结果

 

mock移除

在index.js中设置if判断后,在根目录下建立.env.development文件,可通过true或false进行mock是否移除

 

其它还可进行增删改、分页Mock,但个人是全栈,所以不继续关注了

标签:axios,require,json5,学习,json,Mock,mock
From: https://www.cnblogs.com/tianshu/p/17278371.html

相关文章

  • Python学习笔记
    importthisprint("helloworld!")s1="bai"s2="lin!"s=f"{s1}{s2}"#f是format的意思,后面的s1,s2会把值复制到中括号内生成一个新的字符串print(s.title())#每个字母的开头大写a=2b=3print(a**b)#a**b表示a的b次方x,y,z,=1,2,3print(x,y,z......
  • Git提交本地项目到云端仓库(学习理解持续更新)
    进入项目文件夹初始化本地仓库gitinit把所有文件添加到版本库中gitadd.查看添加的文件gitstatus......
  • click house学习
    创建表createtableblog(idUInt64,titleString,contentString,created_atDateTime)Engine=MergeTreeorderbyid;日期数据一般指定默认值createtableblog(idUInt64,titleString,contentString,created_atDateTimedefaultnow())Engine=MergeTreeorderbyid;......
  • 深度学习概念辨析——Epoch、Batch、Iteration
    本文转载自简书https://www.jianshu.com/p/22c50ded4cf7写在前面在训练神经网络的时候,我们难免会看到Batch、Epoch和Iteration这几个概念。曾对这几个概念感到模糊,看了网上的一些文章后,在这里做几个小小的总结。名词解释:【图片来源:https://zhuanlan.zhihu.com/p/29409502......
  • 《Mysql基础》【Mysql触发器 新建触发器、修改触发器、删除触发器、举例】 编程入门
     --mysql数据库程序设计笔记:--=========第八章:触发器========================触发器:触发执行特定事件。(关联表对象,当特定事件出现时,触发激活)目的:保护表数据,(保证表数据完整性和一致性。)1、新建触发器:格式:createtrigger数据库名.触发器名称触发时刻inserton表名f......
  • 《Mysql基础》【Mysql表查询、去重、表连接、左连接 右连接、子表查询、排序、分组等
     --mysql数据库程序设计笔记:第三章:查询1、单表查询:1)、简单查询查所有列:格式:select*from表名;举例:mysql>select*fromtb_student;+----+-----------+-------------+------+------------+----------+--------+---------+-------------------+|id|studentNo|s......
  • 深度学习之量化概念初步理解
    也许标题并不是很对,但一再听到有人提起量化这个词,搜索了下,稍作整理如下:量化任务的简要总结:1、量化映射方法,也就是将float-32映射到Int数据类型,每个间隔是相等的还是不相等的,这里就是均匀量化(uniformquantization)和非均匀量化(non-uniformquantization),也可以叫作线性量化和......
  • python学习-实现对比文件输出html
    在网络配置过程中,经常要对比两个配置文的差异,常用的一些文档编辑器带有文本对比的功能,如notepadd++,等。但是这些大部分都要收费或者安装其他插件,不是很友好,linux上自带diff可以对比,但是一般网工都linux不太熟悉。而且操蛋的是在客户都这里,给你的终端装了沙盒,禁止安装其他的文本的......
  • javascript 学习笔记3
    和let一样,通过const定义的变量不会被提升到顶端。const变量不能在声明之前使用。回调函数曾经是JavaScript中实现异步函数的主要方式。=>的使用:functiondoStep1(init,callback){constresult=init+1;callback(result);}functiondoStep2(init,callback){......
  • 《Mysql基础》【Mysql表的基本操作 新建表、修改表、删除表、外键约束、主键约束、完
     --mysql数据库程序设计笔记:表基本操作:1、新建表:格式如:1)、建表加主键:createtable表名(idintNOTNULLauto_incrementcomment'自增主键id',列名类型(范围)comment'列备注',...primarykey(id))engine=InnoDB;2)、建表加候选键副键约束createtable表名......