用 java 安装 mockserver_前端工程化-Mock Server:使用Node+json-server+mock.js搭建Mock Server...

article/2025/9/18 3:41:32

目的

为了便于前后端分离开发,前端在本地启动mock服务进行开发,后续对接联调时只需将接口地址改成真实地址即可。

一个优秀的mock server应具备以下功能:

随机数据生成,避免手动创建数据;

真实接口体验,内存CRUD,header字段指定等;

自动扫描json目录(文件)生成API访问路径;

服务热启动,json配置更新mock server自动重启;

搭建

1. 依赖npm包安装

glob 文件扫描

mock.js 随机数据生成

json-server express服务,内存数据CRUD

cross-dev 跨平台支持

nodemon node进程自动重启,监听文件

2. 创建如下目录结构

3d7a480cdcf7c341b80a7fb835d0f514.png

其中mock目录下json文件会被mock server扫描注册

3. 核心代码编写

index.js

const path = require('path')

const fs = require('fs')

const jsonServer = require('json-server')

const mockJs = require('mockjs')

const glob = require('glob')

const server = jsonServer.create()

const middlewares = jsonServer.defaults()

// mock数据,常驻内存

let data = {}

/**

* mock解析json文件

* @param file

* @returns {*}

*/

function parsingToMockJs(file) {

const json = fs.readFileSync(file, 'utf-8')

return mockJs.mock(JSON.parse(json))

}

/**

* 合并json数据

* @param path

*/

function mergeJsonData(path) {

Object.assign(data, parsingToMockJs(path))

}

/**

* 扫描mock目录,生成mock数据

*/

glob(path.join(__dirname, `/mock/**/*.json`), {}, (err, files) => {

files.forEach(item => {

mergeJsonData(item)

})

const router = jsonServer.router(data)

server.use(jsonServer.bodyParser)

server.use(middlewares)

// 添加响应头

server.use((req, res, next) => {

res.header('author', 'tangrui')

next()

})

// 数据统一封装

router.render = (req, res) => {

res.jsonp({

flag: true,

code: '2000',

msg: 'success',

data: res.locals.data

})

}

server.use('/mock', router)

server.listen(3000, () => {

console.log('Mock server is running......')

})

})

4. json数据编写

json有两种:

json静态数据,标准json格式

json动态数据,mockjs语法

5. 启动mock server

跨环境支持、热加载

cross-env nodemon index.js --watch 'mock'

也可将启动命令配置到package script中

91765d6caabeea8371426a685eeee6ea.png

总结

在json文件中配置静态数据或mock.js语法动态数据,使用mockjs解析后传入json server;

express为Node Web框架,可编写任意服务代码,json-server内置Express,实现了内存CRUD等功能;

使用glob扫描json文件;

使用cross-dev、nodemon --watch对node进程提供跨平台、热更新等特性。


http://chatgpt.dhexx.cn/article/heg0Gt3X.shtml

相关文章

android端使用mockServer

小伙伴们可能在开发的过程中遇到这样的痛点:比如一个新的项目开发需求下来了,正常来说,要等到服务端将接口开发完毕,我们才去对接数据。但是,往往后端人员又很忙,不能立马开发出接口,这样就大大…

postman使用mock server

可以修改请求返回值(response body数据) 登录postman账号,也可以在线操作Postman API Platform 其他流程可参考 使用Postman实现mock server搭建详解_postman mockserver_阿波-赞的博客-CSDN博客

Postman搭建mock server接口

在工作中,有时后端的接口还没有开发好,前端这时可以用postman的mock server来创建一个伪接口,访问这个伪接口来获得自己想要的响应。 在学习接口测试的过程中,也可以用postman的这个功能,来帮助学习接口测试。 1.首先…

Postman Mock Server 使用

前言 科普界的老问题了。 大部分博客日志抄官方文档给的初始化样例,啥也不说。 看完除了会create,啥也不会了。 自食其力研究一下。 创建 略。 见document。 https://learning.postman.com/docs/designing-and-developing-your-api/mocking-data/moc…

Mock Server基本使用方法

Mock Server 什么是mock servermock server的作用初始Flask配置文件路由系统 【基于flask框架实现Mock Server】get基本方法使用 什么是mock server 实现mock功能的一个服务 mock server的作用 现今的业务系统很少有独立存在的,他们或多或少需要使用兄弟团队或者…

gRPC Mock Server

PowerMock是一个Mock Server的实现,它同时支持HTTP与gRPC协议接口的Mock,并提供了灵活的插件功能。 这个工具面向于前后端、测试等对有接口Mock需求的开发人员,也可以作为一个通用的Mock服务,部署在网关架构或API管理平台中&#…

mock server java_1分钟搭建极简mock server

1、无聊的背景、起源: 如今的业务系统越来越复杂庞大,各个功能直接的调用也是多如牛毛,但如果在联调的时候,恰好被调的接口正在开发,怎么办?傻傻的等么,不存在的!这时会搭建一些serv…

Mock Server入门及实践

分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击人工智能教程 什么是Mock Server? Mock测试:就是在测试过程中,对于某些不容易构造或者不容易…

用 java 安装 mockserver,Mock Server实践

背景 在美团服务端测试中,被测服务通常依赖于一系列的外部模块,被测服务与外部模块间通过REST API或是Thrift调用来进行通信。要对被测服务进行系统测试,一般做法是,部署好所有外部依赖模块,由被测服务直接调用。然而有…

Mock-- Server的使用

近日项目需求 使用mock-server来提供虚拟数据(API),方便在服务被调用方没有开发好的情况下,服务调用方能不被耽误的继续进行开发 。 我们的情况大概是这样: 我们的服务去调用 另一方提供的服务,另一方的服务可能还没有开发好&…

前端调试,模拟数据利器之Mock Server使用教程来啦~

文章目录 1 MockServer是什么2 为什么要使用MockServer3 MockServer的作用4 搭建MockServer服务4.1 部署MockServer服务详细步骤4.1.1 第一种方式(推荐)4.1.2 第二种方式 4.2 启动Shell脚本4.3 访问MockServer UI界面 5 MockServer服务的基础使用5.1 项目…

浅谈 Mock Server

What?什么是 Mock Server Mock 是模拟的意思。在测试中,通常表述为:对测试过程中不容易构造或者不容易获取的物件,用一个虚拟的物件来进行模拟的一个过程。能够提供 Mock 功能的服务就叫作 Mock Server。 Mock Server 通过模拟真…

Mock Server 入门

Mock Server介绍 什么是mock ? 我在去年的时候介绍一篇幅 python mock的基本使用,http://www.cnblogs.com/fnng/p/5648247.html 主要是针对单元测试的应用,它可以很方便的解除单元测试中各种依赖,大大的降低了编写单元测试的难度。 什么是Mo…

Matlab解决脚本中中文乱码问题

首先下载字体yahei consolas hybrid。百度网盘地址: 链接:https://pan.baidu.com/s/1Zv2FMt3uow7DZix2rtAbrA 提取码:am4d 然后将下载的字体保存在C:\Windows\Fonts中,启动Matlab2018a这里使用的是2018a版本,其他版…

WEB UI自动化测试之AutoMagic自动化测试

AutoMagic自动化测试平台 AutoMagic 是一个基于WebUI的自动化管理平台。为什么叫AutoMagic呢?因为自动化(Automation)在执行起来的时候是一个很神奇的事情,它可以无人值守的模拟人的操作,就像魔术(Magic&a…

Jupyter Notebook从入门到精通

下载 本课程练习完整代码 Jupyter Notebook: https://gist.github.com/zgpeace/8d3eb8c803a54d1ca797fa26cb68bd4c 财富500强 csv下载 https://github.com/zgpeace/fortune500.git 1. 什么是 Jupyter 笔记本? Jupyter Notebook 是一个非常强大的工具&…

dev shm mysql_新特性:/dev/shm对Oracle 11g的影响

ORACLE 从11g版本开始,引入了一个自动内存管理(Automatic Memory Management)特性,该特性需要更多的共享内存(/dev/shm),因此如 /dev/shm对Oracle 11g的影响: ORACLE 从11g版本开始,引入了一个自动内存管理(Automatic Memory Mana…

Git分布式版本控制工具

Git分布式版本控制工具 文章目录 Git分布式版本控制工具1、目标 2、概述2.1、开发中的实际场景2.2、版本控制器的方式2.3、Git工作流程图 3、Git安装与常用命令3.1、Git 环境配置3.1.1 下载与安装3.1.2 基本配置3.1.3 为常用指令配置别名3.1.4 解决 GitBash 乱码问题 3.2、获取…

关于我在windows使用volatility取证这档事

官网下载地址:https://www.volatilityfoundation.org/releases volatility3的官方文档:https://volatility3.readthedocs.io/en/latest/basics.html 下载 看清有两个版本,用法不一样 第一次我下载了Volatility 2.6 Windows Standalone Exe…

DLNLP学习笔记03(Speech Recognition: LAS模型)

Listen, Attend, and Spell (LAS) [Chorowski. et al., NIPS’15] 论文地址:https://arxiv.org/pdf/1508.01211.pdf 1 模型简介: 2 Listen:其中Encoder可以为RNN,CNN或者RNNCNN。 Listen-down sampling:(RN…