首页 > 其他分享 >vue3 mock接口

vue3 mock接口

时间:2023-06-07 14:24:06浏览次数:39  
标签:checkUser return 接口 token vue3 password mock

以下基于mock的vite-plugin-mock版本为2.9.6实现,其他版本有可能导致报错

1. 安装依赖:https://www.npmjs.com/package/vite-plugin-mock

pnpm install -D [email protected] mockjs

2. 在vite.config.js配置文件启动插件

// mock插件提供的方法
import { viteMockServe } from "vite-plugin-mock";
// https://vitejs.dev/config/
export default defineConfig(({ command }) => {
  return {
    plugins: [
      vue(),
      viteMockServe({
        localEnabled: command === "serve"
      })
    ],
  };
});

3.新建mock文件夹,新建user.ts文件,模拟接口

// 用户信息数据
function createUserList() {
  return [
    {
      userId: 1,
      userName: "admin",
      password: "123123",
      desc: "平台管理员",
      roles: ["平台管理员"],
      buttons: ["cuser.detail"], // 按钮权限标识
      routes: ["home"], // 路由权限标识
      token: "Admin Token"
    },
    {
      userId: 2,
      userName: "system",
      password: "123456",
      desc: "系统管理员",
      roles: ["系统管理员"],
      buttons: ["cuser.detail", "cuser.user"],
      routes: ["home"],
      token: "System Token"
    }
  ];
}

// 对外暴露一个数组:数组里面包含两个接口
// 1. 登录接口  2. 获取用户信息接口
export default [
  // 用户登录接口
  {
    url: "/api/user/login", // 请求地址
    method: "post", // 请求方式
    response: ({ body }) => {
      // 获取请求体携带过来的用户名与密码
      const { userName, password } = body;
      // 调用获取用户信息函数,用于判断是否有此用户
      const checkUser = createUserList().find(
        (item) => item.userName === userName && item.password === password
      );
      // 没有用户返回失败信息
      if (!checkUser) {
        return { code: 201, data: { message: "账号或者密码不正确" } };
      }
      // 如果有返回成功信息
      const { token } = checkUser;
      return { code: 200, data: { token } };
    }
  },
  // 获取用户信息
  {
    url: "/api/user/info",
    method: "get",
    response: (request) => {
      // 获取请求头携带token
      const token = request.headers.token;
      // 查看用户信息是否包含有次token用户
      const checkUser = createUserList().find((item) => item.token === token);
      // 没有返回失败信息
      if (!checkUser) {
        return { code: 201, data: { message: "获取用户信息失败" } };
      }
      // 如果有返回成功信息
      return { code: 200, data: { checkUser } };
    }
  }
];

4. 安装axios

pnpm i axios

5. 可以在main.ts中,简单测试以上接口

// 测试代码:测试假的接口能否使用
import axios from "axios";
axios({
  url: "/api/user/login",
  method: "post",
  data: {
    userName: "admin",
    password: "123123"
  }
});

6. 效果

成功

失败

 

标签:checkUser,return,接口,token,vue3,password,mock
From: https://www.cnblogs.com/gamepen/p/17462662.html

相关文章

  • wireMock
    1.启动wireMockjava-jarwiremock-jre8-standalone-2.35.0.jar-port7777 2.将service配置文件改成本地wiremock地址后,重新启动service:mvnspring-boot:run   3. http://localhost:7777/__admin/recorder/TargetURL:  http://api.farfetch.net bydefa......
  • vue3使用ElementPlus的消息el-message样式不生效或者被遮盖(z-index)
    一、el-message自定义样式不生效想改弹出框的位置时不生效,使用了el-message的自定义类的custom-class属性也不行。原因应该是加了scoped后使用到里面样式的dom会添加data-v-xxxx这种属性防止css污染,但是message生成的dom是没有添加data-v-xxx属性的,所以样式无效。解决方式:js动态设......
  • Java中如何动态创建接口的实现
    下面用JDK动态代理加一点简单的代码来演示这个过程:1、接口packagecom.yhouse.modules.daos;publicinterfaceIUserDao{publicStringgetUserName();}2、创建代理 packagecom.yhouse.modules.daos;importjava.lang.reflect.Proxy;/***创建代理*@authorcl......
  • 四川省重点用能单位能耗在线监测系统平台接口协议
    本部分是对国家规范中《重点用能单位能耗在线监测系统-基础信息与格式规范》《重点用能单位能耗在线监测系统-端设备接口协议规范》这两个协议规范文档的补充本部分适用于四川省重点用能单位能耗在线监测系统平台应用软件、接口协议应用、能耗监测端设备开发等,实际执行以国家标准......
  • 循环中调用异步接口获取数据
      //查询人员列表  asyncgetPersonList(){   const_this=this;   constdata=awaitgetPersonList(this.formSearch);   console.log("data",data);   varpromiseList=[];   data.forEach((element,inds)=>{   ......
  • vue3使用知识点笔记大全
    vue3使用知识点笔记大全 一、vue3项目搭建[email protected] 使用elementplusui框架npmi-Selementplus//全部引入importElementPlusfrom'element-plus';import'element-plus/dist/index.css';constV......
  • vue3配置stylelint
    stylelint为css的lint工具,可格式化css代码,检查css语法错误与不合理的写法,指定css书写顺序等。以scss作为预处理器为例,看如何配置stylelint1.安装以下依赖pnpmaddsasssass-loaderstylelintpostcsspostcss-scsspostcss-htmlstylelint-config-prettierstylelint-......
  • 2.3. 接口与抽象类
    接口和抽象类是Java中两种实现抽象和多态的方法。它们之间有一些区别,但也有一些相似之处。这一节我们将通过详细的例子来更深入地了解接口和抽象类。2.3.1.接口接口可以定义一组方法签名,但不能包含方法的实现。一个类可以实现多个接口,实现接口的类必须实现接口中定义的所有方......
  • Java 深入学习(3) —— 抽象类(Abstract Class) 与 接口(Interface)的区别
    抽象类(AbstractClass)Java提供一个叫抽象方法的机制,这种方法是不完整的,仅有声明而没有方法体。abstractvoidf();包含抽象方法的类叫做抽象类。如果一个类包含一个或者多个抽象方法,则该类必须被限定为抽象的。如果从一个抽象类继承,并想创建该新类的对象,就必须为基类中的所有抽......
  • Jmeter-依赖登录的接口测试
    JMETER接口测试问题解决二之后续接口请求依赖登录接口的操作-知识在于点滴的积累-博客园(cnblogs.com)问题现象:必须登录才能测试其他接口解决办法:    用到了http授权管理器和httpcookie管理器。注意:  要先判断当前的登录的token是在header中的Authorizat......