mock-前端数据模拟

news2025/1/19 22:23:29

简介

数据模拟不是开发流程中的必要一环

Json-server

简介:

json-server 是一个简单的 Node.js 服务端应用程序,这个工具的主要作用是提供一个模拟的后端服务,可以在前端开发过程中独立于后端进行简单工作。

使用:

1、 安装

Npm install -g json-server

2、 创建json文件
在这里插入图片描述

这个json文件在哪创建都可以,我只是为了方便在我的工程创建了,json文件中可以定义多个路径接口。

3、 启动服务

json-server --watch .\json-server-mock\json-server-mock.json --port 3003

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

如果不加 –port 3003 默认端口是3000

命令太长,可以将命令配置到package.json中。

4、 访问json接口

在这里插入图片描述

在这里插入图片描述

5、 更多操作

可以对数据进行简单的增删改查以及其他操作,详情观看学习地址链接。

优缺点:

优点:零编码;完全脱离我们开发的项目;只需要提供一个json文件,支持简单的增删改查。

缺点:需要手动编写模拟数据

学习:

学习视频:【Web开发必备技能】json-server搭建数据mock服务器,实现数据增删改查_哔哩哔哩_bilibili

GITHUB:typicode/json-server:在不到 30 秒的时间内获得一个完整的假 REST API,零编码(认真) (github.com)

Mock.js

简介:

Mock.js 是一个用于生成随机数据的 JavaScript 库,它可以帮助前端开发者在没有后端数据的情况下模拟 API 响应。通过 Mock.js,开发者可以很容易地生成各种类型的数据,如字符串、数字、布尔值、对象、数组、图片等,并且可以自定义数据生成的规则。

mock.js有两个作用:

1、 产生模拟数据:调用mock接口后直接返回模拟数据。

2、 拦截ajax:拦截请求并返回模拟数据。

安装配置:

1、 安装。

npm install mockjs vite-plugin-mock

如果项目使用TypeScript的话,需要在src下创建一个mockjs.d.ts文件,并且写入内容如下:

在这里插入图片描述

然后在tsconfig.json进行配置

在这里插入图片描述

因为mockjs没有*.d.ts文件,我们再项目引用时会报错

2、 使用1-只模拟数据

在src下创建mock文件夹,然后在此文件夹下创建mock文件

在这里插入图片描述

然后在文件中编写模拟代码

import Mock from 'mockjs'
export const data_1  = Mock.mock({
    'name|1-5': 'abc', //这行代码表示 属性名为:name ,属性值随机1到5个                            ’abc’字符串拼接在一起
     ///更多数据
}

调用

在这里插入图片描述

启动项目查看结果

在这里插入图片描述

更多模拟数据规则写法详见官方文档:Home · nuysoft/Mock Wiki (github.com) | Mock.js (mockjs.com)

3、 使用2-拦截xhr请求返回模拟数据(需要配置以vite为例)

a) 如果我们需要拦截xhr请求的话需要先进行配置

在这里插入图片描述

更多配置如下:

{
mockPath?: string:可选,指定存放 mock 文件的目录路径。默认通常是 'mock',意味着插件会默认在项目根目录下的 mock 目录中查找 mock 文件。
configPath?: string:可选,指定 mock 服务配置文件的路径。如果你需要将 mock 配置与 Vite 主配置分离,可以使用这个参数指定配置文件的位置。
ignore?: RegExp | ((fileName: string) => boolean):可选,用于指定哪些文件应该被 mock 服务忽略。可以是一个正则表达式,也可以是一个函数,函数接受文件名作为参数,返回 true 表示忽略该文件。
watchFiles?: boolean:可选,指示 mock 服务是否应该监听 mock 文件的变动。如果设置为 true,则在文件变化时,mock 服务会自动更新。这在开发过程中非常有用,默认值通常是 true。
enable?: boolean:可选,指示是否启用 mock 服务。如果设置为 false,则 mock 服务将不会启动。这可以用来在特定环境下控制是否使用 mock 服务,例如只在开发模式下启用。
logger?: boolean:可选,指示是否启用请求和响应的日志记录。如果设置为 true,则 mock 服务会在控制台输出请求和响应的详细信息,便于调试。
cors?: boolean:可选,指示是否启用 CORS(跨源资源共享)。如果设置为 true,则 mock 服务会对请求响应添加 CORS 相关的 HTTP 头,允许跨源请求。
}

b) 正常编写axios的访问api接口代码

在这里插入图片描述

c) 我们在之前的mock/index.ts中开始编写mock

在这里插入图片描述

d) 正常调用接口

在这里插入图片描述

在这里插入图片描述

注意:

1、MOCK.JS仅能拦截XHR的数据请求(或者基于XHR的第三方库,比如axios),无法拦截使用fetch发出的请求(不直接支持fetch)。

2、使用Mock.js导致文件的下载功能异常。问题是由于 mock.js 在拦截请求时覆盖了 responseType 的值,导致预期应该是 blob 类型的响应数据被错误地处理成了 string 类型。这通常发生在 mock.js 拦截了 AJAX 请求并返回模拟数据时。

在开发环境中测试使用下载功能时禁用mock.js

优缺点

优点:支持生成各种类型的数据,并且可以通过拦截 Ajax 请求模拟后端接口返回数据。

缺点:需要学习 Mock.js 的语法规则。

axios-mock-adapter

针对axios-mock-adapter 是一个专门为 axios HTTP 客户端设计的模拟适配器,用于在测试环境中模拟 HTTP 请求和响应,不能模拟数据。

官网:axios-mock-adapter:Axios adapter that allows to easily mock requests - GitCode

在线平台-APIFOX

在这里插入图片描述

B站官方账号学习:apifox-哔哩哔哩_bilibili

APIFOX教程视频-视频长度22分钟:22分钟学会Apifox!2024年的Apifox有什么全新功能?_哔哩哔哩_bilibili

APIFOX-MOCK-视频长度20分钟: Apifox Mock功能全解析!高级 Mock 自定义脚本功能尝鲜!_哔哩哔哩_bilibili

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

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

相关文章

CVPR 2024盛况空前,上海科技大学夺得最佳学生论文奖,惊艳全场

CVPR 2024盛况空前!上海科技大学夺得最佳学生论文奖,惊艳全场! 会议之眼 快讯 2024 年 CVPR (Computer Vision and Pattern Recogntion Conference) 即国际计算机视觉与模式识别会议,于6月17日至21日正在美国西雅图召…

基于强化学习的目标跟踪论文合集

文章目录 2020UAV Maneuvering Target Tracking in Uncertain Environments Based on Deep Reinforcement Learning and Meta-LearningUAV Target Tracking in Urban Environments Using Deep Reinforcement Learning 2021Research on Vehicle Dispatch Problem Based on Kuhn-…

【面试题】风险评估和应急响应的工作流程

风险评估和应急响应是网络安全管理中两个重要的环节。下面分别介绍它们的工作流程: 一、风险评估工作流程: 1.确定评估范围:明确需要评估的信息系统或资产的范围。 2.资产识别:识别并列出所有需要评估的资产,包括硬件…

【自动驾驶】运动底盘状态数据:里程计、IMU、运动学分析、串口通信协议

文章目录 控制器与运动底盘状态数据:里程计、IMU运动学分析与轮子运动学分析公式串口通信控制与反馈通讯协议串口通信反馈上行数据帧解析串口通信控制下行数据帧解析代码实现IMU、里程计数据的获取、解析、计算控制器与运动底盘状态数据:里程计、IMU 控制器需要负责外发底盘…

剑指offer 算法题(搜索二维矩阵)

剑指offer 第二题 去力扣里测试算法 思路一&#xff1a; 直接暴力遍历二维数组。 class Solution { public:bool searchMatrix(vector<vector<int>>& matrix, int target) {for (unsigned int i{ 0 }; i < matrix.size(); i){for (unsigned int j{ 0 };…

ASP.NET Core 6.0 使用 Log4Net 和 Nlog日志中间件

前言 两年前,浅浅的学过 .NET 6,为啥要记录下来,大概是为了以后搭架子留下引线,还有抛砖引玉。 1. 环境准备 下载 建议使用 Visual Studio 2022 开发版 官网的下载地址:Visual Studio 2022 IDE - 适用于软件开发人员的编程工具借助 Visual Studio 设计,具有自动完成…

Word中删除空白页

① 文字后面出现的空白页 把鼠标放在空白页的位置&#xff0c;按住Ctrl Delete即可。 ② 表格后面的空白页 把鼠标放在空白页左侧&#xff0c;直到出现一个空白的箭头&#xff0c;点击一下选中空白页&#xff0c;然后再Ctrl D&#xff0c;打开字体选项卡&#xff0c;在效果中…

智能体合集

海外版coze: 前端代码助手 后端代码助手&#xff1a; 前端代码助手&#xff1a;

【shell脚本速成】函数

文章目录 一、函数1.1、函数介绍1.2、函数定义1.3、函数调用 &#x1f308;你好呀&#xff01;我是 山顶风景独好 &#x1f388;欢迎踏入我的博客世界&#xff0c;能与您在此邂逅&#xff0c;真是缘分使然&#xff01;&#x1f60a; &#x1f338;愿您在此停留的每一刻&#xf…

鸿蒙开发通信与连接:【@ohos.wifiext (WLAN)】

WLAN 说明&#xff1a; 本模块首批接口从API version 8开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 该文档中的接口只供非通用类型产品使用&#xff0c;如路由器等&#xff0c;对于常规类型产品&#xff0c;不应该使用这些接口。 导入模块 …

自动备份SQL Server数据库,试试这4种方法!

各种规模的企业都使用 SQL 数据库来存储数据。因此&#xff0c;备份 SQL Server 数据库对于确保数据安全并在发生灾难时可恢复至关重要。对于 SQL 数据库备份&#xff0c;有多种可行的方法&#xff0c;对于特定组织来说&#xff0c;方法将取决于其具体需求。 SQL Server 备份的…

java:Multiple Bounds--类型变量(TypeVariable)定义的高级用法--<A extends ClassAIfAIfB >

做Java开发工作好多年了。今天偶然翻到 java.lang.TypeVariable的源码&#xff0c;好奇为什么 TypeVariable.getBounds()返回类型是个数组。 一般不都是<T extends Number> 这样用码&#xff1f;T难道还能extends多个类型&#xff1f; 同问&#xff1a;不应该是extend,为…

基于Pytorch框架的深度学习Vision Transformer神经网络蝴蝶分类识别系统源码

第一步&#xff1a;准备数据 6种蝴蝶数据&#xff1a;self.class_indict ["曙凤蝶", "麝凤蝶", "多姿麝凤蝶", "旖凤蝶", "红珠凤蝶", "热斑凤蝶"]&#xff0c;总共有900张图片&#xff0c;每个文件夹单独放一种…

重磅!2024年最新影响因子正式发布,附Excel下载

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 激动人心的时刻终于来了&#xff0c;2024年影响因子已全面发布&#xff01;废话不多说&#xff0c;大家一起来看看最新的发布的结果吧&#xff01; 神刊&#xff1a;CA-A CANCER JOURNA…

go-admin-ui开源后台管理系统华为云部署

1.华为云开通8000与9527端口 2.编译 编译成功 3.发布到远程服务器 4.登陆华为云终端 5.安装Nginx 6.查看服务启动状态 7.添加网站 添加与修改配置www-data 改为 www 自定义日志输出格式 添加网站配置文件go_admin_ui.conf 添加如下内容: location 下的root指向网站文件夹 修…

java实现图片水印添加并自动上传七牛云

图片左下角水印添加 满足需求&#xff1a;可以对不同类型尺寸的照片、图片进行水印的添加&#xff0c;实现尺寸自适应添加水印。 水印效果 代码实现 Controller package com.wlh.zetc.restore.controller;import cn.hutool.core.date.DateUtil; import com.alibaba.nacos.c…

QT(超详细从0开始)

目录 1.2 Qt的优点 2.安装Qt 3.创建项目 4.解读Qt自动生成的代码 ​编辑 5.Qt Designer 6.Qt对象数 7.Qt乱码问题 8.Qt坐标系的认识 9.信号和槽 9.1 connect 9.2 自定义槽函数 9.3 自定义信号 9.4 断开信号链接&#xff08;disconnect&#xff09; 9.5.lambda表…

supOS浅度集成

一、浅度集成介绍 浅度集成是根据项目或者演示要求而做的集成工作&#xff0c;通过接入supOS的单点登录&#xff0c;UI调整&#xff0c;菜单栏的集成&#xff0c;从而达到客户使用supOS平台来使用各个应用的能力。 二、浅度集成的作用 通过较少的研发投入使APP应用浅度融入到…

2024年7月JLPT日语N1真题试卷和答案解析,《Navi日语社》小程序在线答题考试,你的专属考试助手,日语学习神器!

掌握日语&#xff0c;从日语社小程序开始。这款小程序专为日语学习者设计&#xff0c;提供全面的JLPT备考资源&#xff0c;包括日语N1至N5等级考试的历年真题和2024年最新题目。无论你是日语新手还是备考高手&#xff0c;都能在这里找到适合自己的学习路径。 核心功能&#xf…

数据资产在供应链管理中担当核心角色:利用数据驱动,显著提升运营效率,有效降低潜在风险,实现决策优化,为企业的可持续发展奠定坚实基础

一、引言 在当今全球化和数字化的时代&#xff0c;供应链管理已成为企业竞争力的关键要素之一。随着信息技术的高速发展&#xff0c;数据资产在供应链管理中扮演着越来越重要的角色。通过有效地利用数据资产&#xff0c;企业能够显著提升运营效率&#xff0c;降低潜在风险&…