前端 - 使用json-server搭建单机mock平台

发布时间 2023-10-13 13:41:32作者: Helios_Fz

使用json-server搭建单机mock平台

 简介

json-server是一个 Node 模块,可以指定一个json文件作为数据源,运行 Express 服务器。可以用来在本地快速搭建一个REST API风格的后端服务,模拟服务端接口数据。

官网地址:json-server - npm (npmjs.com)

Github地址:GitHub - typicode/json-server: Get a full fake REST API with zero coding in less than 30 seconds (seriously)

使用

新建一个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都是可以访问到数据的

 在控制台也会打印出对应的访问日志