前端mock工具:json-server在vue项目中的使用

在项目中前端和后端通常是并行开发,为了减少等待后端接口开发的时间,我们经常需要在本地模拟后端接口用来测试前端效果。这种做法称之为构建前端Mock。

前端Mock方法大致可以分为以下两种:

  1. 本地启动一个静态服务,将所需要的接口写成json文件,根据接口名字将文件放在项目目录下。
  2. 再启动一个Server作为Mock Server,使用第三方Proxy将Mock Server的接口代理到静态服务器上。

第一种方法相对简单,可是带来的弊端也很多。如果项目的接口较少维护起来还比较容易,但是一旦涉及到很多接口的调用,我们就需要在项目里新建许多个json文件,十分麻烦。

第二种方法则避免了修改接口的麻烦,在本地的Mock Server中模拟一个和线上一样的接口,这样的Mock也更接近于线上的环境。比如已经集成好的工具Json-Server。

Json-Server是基于REST API的前端mock工具,配合使用Proxy,效率极高。

在vue-cli搭建的vue前端项目中,配置webpack使用json-server步骤如下:

1.首先:全局安装Json-Server:npm install -g json-server

2.在项目根目录中,新建一个test.json文件(getMachineOrderStatistics为url路径,不支持api/url的/格式),该文件可以写入多个url请求的接口 格式如下:

{
"getMachineOrderStatistics": {
    "resultCode": 1200,
    "msg": "操作成功",
    "data": [
        {
            "id": 1,
            "machineId": "42342423"               
        }
    ],
    "total": 1    
 }
}
复制代码

3.启动 json-server --watch test.json --port 9090

即可通过http://localhost:9090//getMachineOrderStatistics来访问接口。

4.通常在本地开发环境下,我们已经启动了一个静态服务,因此需要用代理服务进行跨域(两个服务分别在两个端口上)。 通过代理来访问该接口 在webpack的config文件中,

proxyTable: { 
    '/mockServer': {
      target: 'http://localhost:9090',
      changeOrigin: true,
      pathRewrite: {
        '^/mockServer': ''
      }
    },
}
复制代码

5.在package.json中新添加一个scripts:

"scripts": {
"mock": "node_modules/.bin/json-server --watch test.json --port 9090",
"mockdev": "npm run mock & npm run dev"
},

由于json-server是命令行工具,若没有全局安装需要用相对路径去调用它:
node_modules/.bin/json-server 。
路径不能少,否则会提示找不到命令。
复制代码

6.运行 npm run mockdev来启动项目,同时也启动了json-server

  \{^_^}/ hi!    
  Loading test.json
  Done   
  Resources
  http://localhost:9090/getMachineOrderStatistics
复制代码

7.在项目中,我们通过/mockServer/getMachineOrderStatistics即可请求该mock数据

现在可以直接按照RESTFUL的规范调用这个接口,并且所做的POST和DELETE等请求,会直接修改test.json文件的值。 比如,使用post方法,对/getMachineOrderStatistics传递参数,则该值可以直接写入到test.json文件中。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为什么要学习服务端渲染 nuxt.js ? 现在我们的项目大多数都是SPA(单页面应用),在实际开发过程单页面应用比之前的模板渲染要好很多,首先单页面应用是前后端分离,架构清晰,前端负责交互逻辑,后端负责数据,前后端单独开发,独立测试。但是,SPA不利于SEO(搜索引擎优化)。让搜索引擎更为信任该网站,通过提升排名获得更多网站流量,对于某些类型的网站是非常有必要的。目前大部分的Vue项目本质是 SPA 应用,React、Angular也都是SPA应用。SPA应用广泛用于对SEO要求不高的场景。在我们开发的过程,我们有 SEO 的需求,我们需要搜索引擎更多地抓取到我们的项目内容,此时我们需要SSR。SSR保证用户尽快看到基本的内容,也使得用户体验性更好。 Nuxt.js 是一个 Node 程序,基于vue.js开发的一套服务端渲染的框架,必须使用 Node 环境。我们对 Nuxt.js 应用的访问,实际上是在访问这个 Node.js 程序的路由,程序输出首屏渲染内容 + 用以重新渲染的 SPA 的脚本代码,而路由是由 Nuxt.js 约定好的 pages 文件夹生成的,开发只需要遵循一定的约定,直接使用vue.js开发我们项目也是非常轻松的。 课程案例 (1) HOME PAGE (2) Jokes Page  (3)About Page  课程概述 在本课程,大喵将使用 nuxt.js + bootstrapVue + json-server 开发实战性质一个入门级项目,带着大家来体验服务端渲染(SSR )项目构建的过程;介绍 nuxt.js项目目录的结构,每个文件夹和文件的基本概念和作用,以及nuxt.config.js 配置文件的基本介绍;页面公共结构处理,路由页面跳转配置处理;axios 接口请求;带着大家来熟悉及掌握 bootstrapVue UI组件库的使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值