应用场景:

在实际的项目开发过程中,一般都会进行前后端分离的开发模式,前端通过mock或者其他的插件模拟后台返回数据的功能。在常用的webpack构建工程项目中,通过和webpack-dev-server或者express等相互配合,开启本地服务,可以直接模拟发送ajax请求,如果想要模拟后台返回的数据,得重新开启一个mock server服务,这样就比较麻烦,今天要介绍的webpack-api-mocker插件,就很好的解决了这个问题,不需要再单独开启一个服务,可以实现模拟数据,具体配置如下。

第一步: 安装webpack-api-mocker

npm install webpack-api-mocker --save-dev

第二步:编写mock里面的index.js(接口文件)

在项目中创建mock文件夹,创建index.js文件,具体代码如下:

const proxy = {
'GET /api/user': {
id: 1,
username: 'good',
sex: 6
},
'GET /api/user/list': [
{
id: 2,
username: 'study',
sex: 5
},
{
id: 3,
username: 'jake',
sex: 4
}
],
'POST /api/user/manager': (req, res) => {
console.log('-----' + req.body);
res.send({status: 'ok', message: '删除成功'});
}
};
module.exports = proxy;

(注: 这个对象的key值,是方法+路径,一定要注意前面的空格,不然会报错)

第三步:结合webpack的配置

const webpack = require('webpack'); // 访问内置插件
const HtmlWebpackPlugin = require('html-webpack-plugin');
const path = require('path');
const apiMocker = require('webpack-api-mocker');
const mocker = path.resolve(__dirname, '../mock/index.js');
module.exports = {
entry: {
app: path.join(__dirname, '../src/index.js')
},
output: {
path: path.resolve(__dirname),
filename: 'bundle.js'
},
devtool: 'eval-source-map',
devServer: {
port: 8009, // 端口号
hot: true, // 是否使用热更新
compress: true, // 压缩
historyApiFallback: true,
contentBase: path.join(__dirname, 'output'), // 从哪里访问文件
before(app) {
apiMocker(app, mocker, {
proxy: {
'/api/*': 'https://www.baidu.com'
},
changeHost: true
});
}
}
};

在webpack.config.js中加入红色的部分,发送请求的时候就可以很好的看到后台返回的数据

以上就是webpack-dev-server+webpack-api-mocker实现了前端的数据请求和数据返回,简单配置,不需要再去修改其他的配置

(注释:使用过程中发现了一个弊端,当请求方式为get时,无论是否有此接口,状态码返回的都为200,当且只当请求方式为post的时候才使用正常)

前端开发模拟数据------webpack-api-mocker的更多相关文章

  1. 前后端分离开发——模拟数据mock.js

    mock.js 生成模拟数据,拦截ajax请求 <script type="text/javascript" src="http://libs.baidu.com/ ...

  2. 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_09-webpack研究-webpack介绍

    使用vue.js开发大型应用需要使用webpack打包工具,本节研究webpack的使用方法. 1.3.1 webpack介绍 Webpack 是一个前端资源的打包工具,它可以将js.image.cs ...

  3. 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_12-webpack研究-webpack安装

    npm默认安装配置的路径配置在nodejs的node_modules目录 j加上 -g 就是全局安装 后面只写webpack默认安装的是最新版本 指定版本号 视频中建议指定版本号进行安装

  4. 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_13-webpack研究-webpack入门程序

    创建webpack测试的目录 定义webpack的入口文件 mdel01必须导出,main里面才能导入 导出多个 数组的写法 main是入口文件,里面已经引入了vue.min和model01.js   ...

  5. web前端与后台数据交互

    1.前端请求数据URL由谁来写? 在开发中,URL主要是由后台来写的,写好了给前端开发者.如果后台在查询数据,需要借助查询条件才能查询到前端需要的数据时,这时后台会要求前端提供相关的查询参数,这里的查 ...

  6. 前端架构gulp与webpack(知识点整理)

    一 概念介绍 gulp 是 task runner,Webpack 是 module bundler.可以这么说, Webpack 和 gulp 本身都有 95% 的功能是不能被对方替代,或者直接说和 ...

  7. App开发如何利用Fidder,在api接口还没有实现的情况下模拟数据,继续开发

    相信app开发很多时候,都是等后台出接口,拿到数据调试错误.殊不知,我们完全可以不用等,只要有约定好的接口定义文档,借助工具就能做到,自己模拟数据返回~      下面主要是在项目组开发过程中,使用F ...

  8. mockjs学习总结(方便前端模拟数据,加快开发效率)

      基本介绍: 在我们前端开发中经常遇到这样的事情,接口没有写好,只能写静态页面,如何才能用很简单的方法模拟后端数据呢?mockjs就干了这件事,而且干的还挺好. 下面是我作为初学者的一些总结经验,期 ...

  9. 让前端独立于后端进行开发,模拟数据生成器Mock.js

    让前端独立于后端进行开发,模拟数据生成器Mock.jsMock.js 是一款模拟数据生成器,旨在帮助前端攻城师独立于后端进行开发,帮助编写单元测试. Home · nuysoft/Mock Wiki ...

随机推荐

  1. springmvc核心技术

    目录 异常处理 类型转换器 数据验证 文件上传与下载 拦截器 异常处理 Spring MVC中, 系统的DAO, Service, Controller层出现异常, 均通过throw Exceptio ...

  2. Redis-安装篇

    Redis Cluster搭建 需求:创建6个节点,3主3从127.0.0.1:6379127.0.0.1:6380127.0.0.1:6381127.0.0.1:6382127.0.0.1:6383 ...

  3. MobX 学习

    资源汇集帖: https://github.com/mobxjs/awesome-mobx/blob/master/README-CN.md 中文文档: http://cn.mobx.js.org/ ...

  4. Google 最新推出数据集搜索

    继Google在2004年11月推出Google的重量产品Google scholar后,Google在最近推出的另一个重量级产品 Google Dataset Search.众所周知,互联网上的信息 ...

  5. StringBuffer&StringBuilder

    对字符串修改时,用到StringBuffer&StringBuilder,能够多次修改对象并且不产生新的未使用对象 StringBuilder线程不安全(不能同步访问),速度有优势,多数情况下 ...

  6. MySQL data sync to Oracle with OGG(Remote Delivery)

    MySQL to Oracle with OGG 1. Install MySQL: yum install mysql-community-server [root@localhost ~]#  y ...

  7. pdf.js使用总结#如何在网页读取并显示PDF格式文档

    pdf.js可以实现在html下直接浏览pdf文档,是一款开源的pdf文档读取解析插件 pdf.js主要包含两个库文件,一个pdf.js和一个pdf.worker.js,一个负责API解析,一个负责核 ...

  8. Introduction to Unity UI

    https://www.raywenderlich.com/795-introduction-to-unity-ui-part-1 https://www.raywenderlich.com/794- ...

  9. python模块之json_pickle_shelve

    序列化:明显是json重要,并且应用场景多. #!/usr/bin/env python # coding:utf-8 import json ## 非常重要的模块,用于不同种编程语言间交换数据. d ...

  10. 日积月累--线程中断interrupt()方法

    线程中断方法interrupt()方法的理解: interrupt()方法的源码: interrupted()方法的源码及注解: isInterrupted()方法源码及注解: 在了解这个方法之前我们 ...