用JSON Server构建前端Mock Server

Posted 西安IT圈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用JSON Server构建前端Mock Server相关的知识,希望对你有一定的参考价值。

项目开发中前端开发和后端开发通常是并行开发的,通常情况下,前端开发时,后端接口并没开发好,为了减少这种等待,前端开发经常需要在本地模拟后端接口来测试前端效果。本文我们以JSON Server为例来模拟后端接口。

一、安装JSON Server:

Npm install -g json-server

进入安装目录C:\Users\administrator\AppData\Roaming\npm\node_modules\json-server或将该目录的data.json拷到命令行执行目录后启动服务:

Json-server --watch data.json

访问http://localhost:3000

 

现在可以直接按照RESTful规范调用这个接口,并且所做的POSTDELETE等请求,会直接修改data.json的值。

二、整合Webpack Dev Server

在项目中使用JSON Server,还需要做点处理。通常在本地调试的时候我们已经启动了一个静态服务,因此需要代理服务进行跨域(两个服务分别在两个端口上)。对于使用Webpack打包的项目,已经使用了它自带的webpack-dev-server服务,它工程所了proxy参数来解决这个问题。在webpack.config.js做以下配置:

devServer:{

        proxy: {

            '/gm/api/*': {

                target: 'http://localhost:3000',

                secure: false

            }

        }

}

在package.josn中新添加一个scripts:

"scripts": {

    "dev": "webpack-dev-server --inline --hot --no-info",

    "build": "cross-env NODE_ENV=production webpack --progress --hide-modules",

    "mock": "node_modules/.bin/json-server --watch mock/db.json --port 3000",

    "mockdev": "npm run mock & npm run dev"

  },

    这样在代码中每次调用/gm/api/issues的时候,都会调用到JSON Server服务去,可以真实模拟线上的接口使用情况。现在可以把所有接口都集中写到一个json文件中去,代码里面线上环境和本地Mock也保持了一致,不需要再来回切换啦!

三、加上Faker

如果我们想在Mock的时候生成更多的随机数据,这个时候就需要faker了!faker.js可以用来产生大量的模拟假数据。

Npm   install  faker lodash -save-dev

在项目中新建一个generate.js文件

module.exports = function(){

  var faker =require("faker");

  vae _ = require("lodash");

  return {

    people: _.times(100,function (n) {

      return {

        id: n,

        name: faker.name.findName(),

        avatar: faker.internet.avatar()

      }

    })

  }

}

使用命令json-server generate.js

生成了100条数据,它也能够生成许多常见的随机数据。

西安IT圈

ID:xa-itq


长按二维码识别并关注



以上是关于用JSON Server构建前端Mock Server的主要内容,如果未能解决你的问题,请参考以下文章

json-server的下载和基本使用

json-server搭建mock服务

json-server搭建mock服务

凡尘---json-server---基本使用

前端使用express mock数据

插件---- json-server基本使用