Mockjs模拟登录接口数据

2023-11-15

一丶安装mockjs

cnpm install mockjs --save-dev

二丶创建Mock文件

Mock文件下包含index.js(mock服务)和user.js(mock数据)

index.js:

// 首先引入Mock
const Mock = require('mockjs');
 
// 设置拦截ajax请求的相应时间
Mock.setup({
    timeout: '200-600'
});
 
let configArray = [];
 
// 使用webpack的require.context()遍历所有mock文件
const files = require.context('.', true, /\.js$/);
files.keys().forEach((key) => {
    if (key === './index.js') return;
    configArray = configArray.concat(files(key).default);
});
 
// 注册所有的mock服务
configArray.forEach((item) => {
    for (let [path, target] of Object.entries(item)) {
        let protocol = path.split('|');
        Mock.mock(new RegExp('^' + protocol[1]), protocol[0], target);
    }
})

user.js:

import Mock from 'mockjs' //导入mockjs
 
const userList = {  //定义用户数据
    data: {
        total: 6,
        //前两个用户数据分别固定设为管理员和普通用户,为后续权限设置做准备,其他用户随机生成
        userinfo: [{  
            username: 'admin',
            password: '123456',
            roles: 'admin',
            name: '张三',
            age: 23,
            job: '前端工程师',
            token: '000111222333444555666',
            id: '100',
        }, {
            username: 'editor',
            password: '123456',
            roles: 'editor',
            name: '测试1',
            'age|20-30': 23,
            job: '前端工程师',
            token: '145145145123123123111',
            id: '101',
        }, {
            username: '@word(3, 5)',
            password: '123456',
            roles: 'editor',
            name: '@cname',
            'age|20-30': 23,
            'job|1': ['前端工程师', '后端工程师', 'UI工程师', '需求工程师'],
            token: '@guid()',
            id: '102',
        }, ],
        meta: {
            status: 200,
            message: 'success',
        }
    },
};

Mock.mock('/user', 'post', req => { //路径与请求方式
  const { username, password } = JSON.parse(req.body); //将传递进来的数据保存
  for (let i = 0; i < userList.data.userinfo.length; i++) { 
      //判断userList中是否存在该用户并且用户密码是否正确
      if (username === userList.data.userinfo[i].username && password === userList.data.userinfo[i].password) {
          return {
              meta: {
                  msg: 'success',
                  status: 200
              },
              user: {
                  username: userList.data.userinfo[i].username,
                  roles: userList.data.userinfo[i].roles
              }
          }
      }
  }
  return {
      meta: {
          msg: 'error',
          status: 201
      }
  }
})

//定义请求方法与路径
export default {
    'get|/user': userList,
}

三丶在main.js引入Mock文件
通过
方法一:require(’…/mock’)
方法二:import ‘…/mock’

四丶axios请求数据

login(){
        let {name,password} = this.ruleForm
        this.$http({
          method:'post',
          url:'/user',
          data:{
            username:name,
            password:password
          }
        }).then(res=>{
          console.log(res)
          let code = res.data.meta.status
          if(code == '200'){
            this.$router.push('/home')
          }
        })
      }

以上就是Mock登录接口的全部步骤啦~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mockjs模拟登录接口数据 的相关文章

随机推荐

  • 【环境配置】Mac环境下利用Homebrew安装指定python版本

    文章目录 基础环境介绍 安装python3 9 配置快捷启动 基础环境介绍 Mac版本 macOS Monterey 12 6 终端环境 zsh 安装工具 homebrew 安装python3 9 使用home brew 安装指定版本pyt
  • 设置路由分发规则

    1 创建子路由 定义项目路由 设置路由参数 index应用配置 配置index应用的路由urls py 测试index应用的路由配置 访问http 127 0 0 1 8000
  • 一个45岁大爷第一天学习python的心得,现在开始还算晚吗

    写在前面的话 本人今年45岁了 初中文化 感觉都不好意思写出来 哈哈 之前没有学过编程方面的东西 前段时间在头条上看到潘石圪在学习python编程 于是从各方面去了解了一下python到底是个什么 赶紧找了一下度娘 不看不知道 一看吓一跳啊
  • ubuntu提示根目录存储空间不足的解决办法

    因为每次使用系统都会产生大量的日志文件 如果没有设置自动清理日志文件或者分区较小 日志文件在一段时间的堆积后就会导致存储空间不足 所以需要清除日志文件 以下是清除步骤 1 切换为超级用户 su 2 查看日志文件大小 du h max dep
  • 【Windows】win10电脑Miracast投屏到电视

    Miracast 是一项无线技术 你的电脑可以使用它来将你的屏幕投影到电视 投影仪和同样支持 Miracast 的流媒体播放器 你可以使用此技术共享你在电脑上执行的操作 展示幻灯片放映 甚至在更大的屏幕上玩你喜爱的游戏 为你的设备做好准备
  • 目前最受欢迎的12个Python开源框架,你用过几个?

    今天给大家带来了12个在GitHub等开源网站中最受欢迎的Python开源框架 如果你正在学习python 那么这12个开源框架 千万别错过 这些框架包括事件I O OLAP Web开发 高性能网络通信 测试 爬虫等 虽说不上是全都有 但也
  • UE4 导航网格的使用

    在使用导航网格前 应先设置项目导航系统支持的导航代理者 Agents 在项目设置中 找到导航系统页面 DirtyAreasUpdateFreq 表示导航网格变化时 检测变化并更新的频率 这里可以设置导航系统的一些参数 包括是否允许客户端导航
  • DT下重新定义设置发布发布条数后的跳转页面

    destoon系统有些地方还是做得不够细致 今天给大家分享一个重新定义发布条数满了以后的页面跳转 正常逻辑跳转应该是会员升级页面而不是会员中心首页 修改方法如下 感谢DT朋友提供的修改方案 打开根目录文件 module article my
  • el-tree 阻止点击节点的时候自动展开或者收缩

    expand on click node 是否在点击节点的时候展开或者收缩节点 默认值为 true 如果为 false 则只有点箭头图标的时候才会展开或者收缩节点 但设置的时候 要加上 不然无效
  • 点选文字验证码识别

    最近在学习爬虫 碰到很多验证登录 今天分享一个点选文字验证码识别以及我在使用的验证码识别平台 上篇文章有涉及滑块验证 首先 注册一个超级鹰账号 选择充值0 5 1元即可 进入用户中心 gt 软件ID 生成一个用来接入接口的软件ID 下载示例
  • Acwing-二叉树的镜像

    遍历树中的所有点 每次遍历完之后把左右儿子swap一下 Definition for a binary tree node struct TreeNode int val TreeNode left TreeNode right TreeN
  • 线程池七大参数

    线程池的七大参数是指使用 ThreadPoolExecutor 创建线程池时所设置的 7 个参数 分别为 public ThreadPoolExecutor int corePoolSize int maximumPoolSize long
  • VScode for c++

    VScode for c VScode for c launch json version 0 2 0 configurations name gdb Launch type cppdbg request launch program wo
  • java集合之Map

    java集合之Map Map接口概述 将键映射到值的对象 一个映射不能包含重复的键 每个键最多只能映射到一个值 Map接口和Collection接口的不同 Map是双列的 Collection是单列的 Map的键唯一 Collection的
  • Linux Rsync服务详解(二)——Rsync服务实战

    今天继续给大家介绍Linux运维相关内容 本文主要内容是Rsync服务详解 一 Rsync实战 接下来 我们选择使用两台设备进行Rysnc的备份实战 设备一IP地址 192 168 136 101 设备二IP地址 192 168 136 2
  • 【openGL2021版】天空盒

    openGL2021版 天空盒 大家好 我是Lampard猿奋 欢迎来到船新的openGL基础系列的博客 今天主要实现的是天空盒 1 什么是天空盒 上周我们已经实现了FPS式的摄像机控制 键盘的 WSAD 可以控制摄像头的前后左右移动 鼠标
  • FPGA面试题【Verilog实现一个2位带进位全加器,画出门级电路】

    目录 题目 核心思路 答案 FPGA全貌 题目 Verilog实现一个2位带进位全加器 画出门级电路 核心思路 思路见代码注释 答案 2位加法器顶层模块 module top s cout a b cin 输入输出端口及变量定义 outpu
  • MySQL的 timze_zone 和 SpringBoot 的 serverTimezone 的设置

    查看和修改 MySQL 的时区 system time zone 系统时区 在MySQL启动时会检查当前系统的时区并根据系统时区设置全局参数system time zone的值 system time zone 变量只有全局值没有会话值 不
  • thinkphp5学习路程 四 模板调用及视图渲染

    继承 think Controller 类 以下类可以直接使用 fetch 渲染模板输出 display 渲染内容输入 assign 模板变量赋值 engine 初始化模板引擎
  • Mockjs模拟登录接口数据

    一丶安装mockjs cnpm install mockjs save dev 二丶创建Mock文件 Mock文件下包含index js mock服务 和user js mock数据 index js 首先引入Mock const Mock