Mockjs模拟登录接口数据

一丶安装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登录接口的全部步骤啦~

经验分享 程序员 微信小程序 职场和发展