目的是方便前后端分离开发。只需将其更改为您的真实地址即可。一个优秀的模拟服务器应该具备以下功能:随机生成数据,避免手动创建数据;真实界面体验、内存CRUD、header字段规范等;自动扫描json目录(文件)生成API访问路径;服务热启动,json配置更新mock服务器自动重启;搭建1.依赖npm包安装glob文件扫描mock.js随机数据生成json-serverexpress服务,内存数据CRUDcross-dev跨平台支持nodemonnode进程自动重启并监听文件2.创建其中目录结构如下mock目录下的json文件会被mockserver扫描注册3.核心代码编写index.jsconstpath=require('path')constfs=require('fs')constjsonServer=require('json-server')constmockJs=require('mockjs')constglob=require('glob')constserver=jsonServer.create()constmiddlewares=jsonServer.defaults()//mock数据,常驻内存让data={}/***模拟解析json文件*@paramfile*@returns{*}*/functionparsingToMockJs(file){constjson=fs.readFileSync(file,'utf-8')returnmockJs.mock(JSON.parse(json))}/***合并json数据*@parampath*/functionmergeJsonData(path){Object.assign(data,parsingToMockJs(path))}/***扫描mock目录生成mockdata*/glob(path.join(__dirname,`/mock/**/*.json`),{},(err,files)=>{files.forEach(item=>{mergeJsonData(item)})constrouter=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('模拟服务器正在运行...')})})4.json数据写json有两种:json静态数据,标准json格式json动态数据,mockjs语法5.启动mockserver跨环境支持,热加载cross-envnodemonindex.js--watch'mock'也可以在包脚本中配置启动命令。总结一下,在json文件中配置静态数据或者mock.js语法动态数据,使用mockjs解析传递给json服务器;express是一个NodeWeb框架,可以编写任何服务代码,json-server内置了Express,实现了内存CRUD等功能;使用glob扫描json文件;使用cross-dev、nodemon--watch为node进程提供跨平台、热更新等特性
