使用json-server搭建单机mock平台
简介
json-server是一个 Node 模块,可以指定一个json文件作为数据源,运行 Express 服务器。可以用来在本地快速搭建一个REST API风格的后端服务,模拟服务端接口数据。
官网地址:json-server - npm (npmjs.com)
使用
新建一个npm项目,项目结构如下
其中各个文件的作用是
json-server - node_modules - public // 项目启动后的首页的静态资源,可以直接从官方git中的public文件夹下复制过来 - db.json // 数据存储文件 - json-server.json // 配置文件 - middleware.js // 自定义js逻辑 - package.json - package-lock.json - routes.json // 自定义路由文件
package.json的文件内容如下
{ "name": "json-server", "version": "1.0.0", "description": "", "scripts": { "start": "json-server -c json-server.json db.json --middlewares middleware.js" }, "dependencies": { "json-server": "0.17.4" } }
在项目中运行 npm install,加载 json-server 依赖。加载成功后执行 json-server -v 查看版本号,测试是否安装成功
json-server.json 内容如下,主要作用为配置一些系统参数
{ "port": 5000, "watch": true, "static": "./public", "routes": "./routes.json", "read-only": false, "no-cors": false, "no-gzip": false }
接着编辑db.json,这里的 json key (这里是“demo”)是对外暴露的接口,json value 是对外返回的数据结构
{ "demo": [ { "id": 1, "title": "json-server", "author": "typicode" } ] }
routes.json中配置的是路由转发关系,没有特殊需求不配置也是可以的
{ "/test":"/demo" }
由于项目中的接口默认为POST方式,但在 json-server 的默认配置中,POST请求会对db.json文件中的数据进行修改。 所以在middleware.js文件中,将请求进来的POST转换为GET,以获得mock返回值,但日志输出时的请求方式还是GET。
middleware.js
module.exports = (request, response, next) => { if (request.method === 'POST') { request.method = 'GET' request.query = request.body } next() }
上述文件都配置完成后,在控制台运行 npm run start 即可启动
由于配置了路由,所以以下两个url都是可以访问到数据的
在控制台也会打印出对应的访问日志
标签:文件,db,request,js,json,server,mock From: https://www.cnblogs.com/helios-fz/p/17761754.html