在vue-cli搭建的项目中增加后台mock接口的方法


Posted in Javascript onApril 26, 2018

用vue-cli搭建一个前端开发环境确实是极其方便,在写前端代码肯定也是少不了需要调用后台提供的业务接口进行前后端交互,特别在敏捷开发中,前后端都要提前确定业务接口并进行打桩,在开发过程中基本是没有现成的后台可以调用,基本上都是自己写mock进行模拟。

在vue-cli搭建的项目中,框架上用的是express的web框架,要做一个mock是很方便的。

假设前端页面上需要获取所有的新闻列表,那么就需要mock一个能够返回所有新闻列表数据的接口。

接下来就在项目中实现mock功能。

脚手架生成项目

执行命令用webpack模板生成一个名为vuestrap的项目(名字任意)

vue init webpack vue-mock-demo

在出现的各提示选项中,没什么要求,为了方便,把不用的ESLint,unit tests,e2e都关掉(这些选项都随意)。

? Project name vuestrap
? Project description A Vue.js project
? Author 省略
? Vue build standalone
? Install vue-router? Yes
? Use ESLint to lint your code? No
? Setup unit tests with Karma + Mocha? No
? Setup e2e tests with Nightwatch? No

选项选完,项目也就生成了。

执行命令,安装脚手架创建的组件

npm install

创建mock

和build、config等文件夹同级创建一个mock文件夹。

为了要mock一个获取新闻列表的数据接口,我们在mock文件夹下创建一个名为“router-news.js”的文件。

其中的内容为:

var express = require('express');
var router = express.Router();

//对所有新闻的get进行mock
router.get('/all', function(req, res, next) {
 //响应mock数据
 res.json([{
  title: 'news-title-1' ,
  content: 'news-content-1'
 },
 {
  title: 'news-title-2' ,
  content: 'news-content-2'
 }]);
});

module.exports = router;

这里的完整url应该是“/mock/news/all”,在这里只写了“/all”子路径。

在build/dev-server.js文件的头部require区域,require上面写的router。

var mockRouterNews = require('../mock/router-news')

最后,调用app.use将讲url和router关联。

app.use('/mock/news', mockRouterNews)

在这里,通过将url的拆分,可以明确的把url进行处理的模块化,一种业务可以交给对应的router进行响应处理,在使用app.use关联所有的router的地方也能看得很清楚。

注意:

使用app.use关联url和router的代码一定要放在对“connect-history-api-fallback”组件的app.use前,否则关联的url会被拦截掉,不会被mock的router正确响应。

在vue-cli搭建的项目中增加后台mock接口的方法

执行

在命令行中执行命令运行项目。

npm run dev

运行后,在浏览器的地址栏中补上mock的url并访问,就能看到mock的数据了,很方便。

在vue-cli搭建的项目中增加后台mock接口的方法

代码 https://github.com/bobenut/demo-webfront/tree/master/d0007/vue-mock-demo

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
深入理解JSON数据源格式
Jan 10 Javascript
js使用正则实现ReplaceAll全部替换的方法
Aug 22 Javascript
详解JavaScript对象序列化
Jan 19 Javascript
Vue 兄弟组件通信的方法(不使用Vuex)
Oct 26 Javascript
vue父组件向子组件动态传值的两种方法
Nov 11 Javascript
vue判断input输入内容全是空格的方法
Mar 02 Javascript
使用vue-router beforEach实现判断用户登录跳转路由筛选功能
Jun 25 Javascript
详解Vue+axios+Node+express实现文件上传(用户头像上传)
Aug 10 Javascript
对angular2中的ngfor和ngif指令嵌套实例讲解
Sep 12 Javascript
ES6 迭代器与可迭代对象的实现
Feb 11 Javascript
js控制随机数生成概率代码实例
Mar 21 Javascript
javascript实现移动端上传图片功能
Aug 18 Javascript
vue 做移动端微信公众号采坑经验记录
Apr 26 #Javascript
jQuery length 和 size()区别总结
Apr 26 #jQuery
Hexo已经看腻了,来手把手教你使用VuePress搭建个人博客
Apr 26 #Javascript
详解Vue项目编译后部署在非网站根目录的解决方案
Apr 26 #Javascript
vue如何判断dom的class
Apr 26 #Javascript
vue 中filter的多种用法
Apr 26 #Javascript
vue自定义filters过滤器
Apr 26 #Javascript
You might like
解析smarty模板中类似for的功能实现
2013/06/18 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
2014/04/05 PHP
php将图片保存为不同尺寸图片的图片类实例
2015/03/30 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
2015/12/18 PHP
PHP实现读取文件夹及批量重命名文件操作示例
2019/04/15 PHP
基于jQuery的ajax功能实现web service的json转化
2009/08/29 Javascript
Jquery Validation插件防止重复提交表单的解决方法
2010/03/05 Javascript
javascript sudoku 数独智力游戏生成代码
2010/03/27 Javascript
url 编码 js url传参中文乱码解决方案
2010/04/11 Javascript
快速解决jquery之get缓存问题的最简单方法介绍
2013/12/19 Javascript
javascript使用正则表达式检测IP地址
2014/12/03 Javascript
js实现下拉框选择要显示图片的方法
2015/02/16 Javascript
超级给力的JavaScript的React框架入门教程
2015/07/02 Javascript
js 定义对象数组(结合)多维数组方法
2016/07/27 Javascript
详解Angularjs在控制器(controller.js)中使用过滤器($filter)格式化日期/时间实例
2017/02/17 Javascript
jquery dataTable 后台加载数据并分页实例代码
2017/06/07 jQuery
javascript用rem来做响应式开发
2018/01/13 Javascript
nodejs中各种加密算法的实现详解
2019/07/11 NodeJs
使用localStorage替代cookie做本地存储
2019/09/25 Javascript
原生js实现日历效果
2020/03/02 Javascript
如何解决jQuery 和其他JS库的冲突
2020/06/22 jQuery
Nodejs + sequelize 实现增删改查操作
2020/11/07 NodeJs
python list转dict示例分享
2014/01/28 Python
Python黑魔法@property装饰器的使用技巧解析
2016/06/16 Python
解决Python 遍历字典时删除元素报异常的问题
2016/09/11 Python
python读取一个目录下所有txt里面的内容方法
2018/06/23 Python
Python读取图像并显示灰度图的实现
2020/12/01 Python
pandas统计重复值次数的方法实现
2021/02/20 Python
小学敬老月活动方案
2014/02/11 职场文书
文秘应届生求职信
2014/07/05 职场文书
2014年幼儿园德育工作总结
2014/12/17 职场文书
React forwardRef的使用方法及注意点
2021/06/13 Javascript
MySQL数据库索引的最左匹配原则
2021/11/20 MySQL
MySQL为数据表建立索引的原则详解
2022/03/03 MySQL
python3 字符串str和bytes相互转换
2022/03/23 Python
SQL语句多表联合查询的方法示例
2022/04/18 MySQL