Vue-cli 使用json server在本地模拟请求数据的示例代码


Posted in Javascript onNovember 02, 2017

写在前面:

开发的时候,前后端不论是否分离,接口多半是滞后于页面开发的。所以建立一个REST风格的API接口,给前端页面提供虚拟的数据,是非常有必要的。json server 作为模拟工具,因为设置简单,容易上手。本文是做一个简单的上手介绍,有需要的朋友可以做一下参考,喜欢的可以点波赞,或者关注一下,希望可以帮到大家。

json server 工具:

在后台还没给接口之前,使用JSON-Server搭建一台JSON服务器,将接口要返回的数据放在json文件里面。然后请求这些数据,这样我们可以先做一些东西,等后台接口好了之后直接替换就可以了,不必一直傻傻的等后端的接口。

安装:

npm install json-server --save //json server
npm install axios --save //使用axios发送请求

json文件:

创建一个json文件,起名叫db.json,文件放置在跟index.html平级的目录中,也可以放置在static文件夹中,db.json文件里面的内容,是一个对象。

设置

位置: build/dev-server.js

//json-server 假数据
var jsonServer = require('json-server') //引入文件
var apiServer = jsonServer.create(); //创建服务器
var apiRouter = jsonServer.router('db.json') //引入json 文件 ,这里的地址就是你json文件的地址
var middlewares = jsonServer.defaults(); //返回JSON服务器使用的中间件。
apiServer.use(middlewares)
apiServer.use('/json',apiRouter)
apiServer.listen( port + 1,function(){ //json服务器端口:比如你使用8080,这里的json服务器就是8081端口
 console.log('JSON Server is running') //json server成功运行会在git bash里面打印出'JSON Server is running'
})

如图所示:

Vue-cli 使用json server在本地模拟请求数据的示例代码 

请求接口代理:

proxyTable: {
 '/api': {
  target: 'http://localhost:8081/', // 通过本地服务器将你的请求转发到这个地址
  changeOrigin: true, // 设置这个参数可以避免跨域
  pathRewrite: {
   '/api': '/'
  }
 },
},

如下图所示:

Vue-cli 使用json server在本地模拟请求数据的示例代码 

npm run dev启动项目可以访问到你的json文件:

现在服务器已经成功启动,在地址栏输入 localhost:8081,就可以看到的json文件,加上相应后缀即可访问文件里面的数据。

jsonserver服务器:

Vue-cli 使用json server在本地模拟请求数据的示例代码 

jsonserver服务器

json数据:

Vue-cli 使用json server在本地模拟请求数据的示例代码 

json数据

axios请求json数据:

光看到这些数据可不行,我们还需要发起请求,请求到这些数据,然后执行各种各样的骚操作。

main.js文件中:

import axios from 'axios';//引入文件
Vue.prototype.$ajax = axios;//将axios挂载到Vue实例中的$ajax上面,在项目中的任何位置通过this.$ajax使用

在组件中的使用方式,比如:

this.$ajax({
    url:'/api/articles',//api 代理到json文件地址,后面的后缀是文件中的对象或者是数组
    method:'get',//请求方式
    //这里可以添加axios文档中的各种配置
   }).then(function (res) {
    console.log(res,'成功');
   }).catch(function (err) {
    console.log(err,'错误');
   })
//还可以像下面这么简写
 this.$ajax.get('api/publishContent').then((res) => {
  console.log(res,'请求成功')
 },(err)=>{
  console.log(err,'请求失败');
 });

JSON-Server只接受GET请求,GitHub上提到:

If you make POST, PUT, PATCH or DELETE requests, changes will be automatically and safely saved to db.json using lowdb.

文档:

附上json server的github,和axios的中文文档,大家可以进去研究一下。

json server设置和使用起来还是蛮方便的,大家感兴趣的话,可以跟着文章设置一波。

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

Javascript 相关文章推荐
for 循环性能比较 提高for循环的效率
Mar 19 Javascript
js实现浏览器窗口大小被改变时触发事件的方法
Feb 02 Javascript
AngularJS 输入验证详解及实例代码
Jul 28 Javascript
JS三目运算(三元运算)方法详解
Mar 01 Javascript
Vue组件的使用教程详解
Jan 05 Javascript
vue2.0使用swiper组件实现轮播的示例代码
Mar 03 Javascript
ES6模板字符串和标签模板的应用实例分析
Jun 25 Javascript
解决axios post 后端无法接收数据的问题
Oct 29 Javascript
JavaScript ECMA-262-3 深入解析(二):变量对象实例详解
Apr 25 Javascript
原生js实现html手机端城市列表索引选择城市
Jun 24 Javascript
JS遍历树层级关系实现原理解析
Aug 31 Javascript
js实现删除json中指定的元素
Sep 22 Javascript
vue项目中使用axios上传图片等文件操作
Nov 02 #Javascript
JavaScript登录验证基础教程
Nov 01 #Javascript
vue打包后显示空白正确处理方法
Nov 01 #Javascript
js实现登录与注册界面
Nov 01 #Javascript
vue仿淘宝订单状态的tab切换效果
Jun 23 #Javascript
五步轻松实现zTree的使用
Nov 01 #Javascript
BootStrap TreeView使用实例详解
Nov 01 #Javascript
You might like
基于mysql的论坛(5)
2006/10/09 PHP
PHP使用Redis长连接的方法详解
2018/02/12 PHP
PHP5.6读写excel表格文件操作示例
2019/02/26 PHP
解决html按钮切换绑定不同函数后点击时执行多次函数问题
2014/05/14 Javascript
当前流行的JavaScript代码风格指南
2014/09/10 Javascript
Node.js 的异步 IO 性能探讨
2014/10/08 Javascript
jQuery实现切换字体大小的方法
2015/03/10 Javascript
jQuery实现类似淘宝网图片放大效果的方法
2015/07/08 Javascript
JS跨域请求外部服务器的资源
2017/02/06 Javascript
js基于FileSaver.js 浏览器导出Excel文件的示例
2017/08/15 Javascript
Vue多系统切换实现方案
2018/06/05 Javascript
jQuery实现table表格信息的展开和缩小功能示例
2018/07/21 jQuery
详解微信小程序input标签正则初体验
2018/08/18 Javascript
微信小程序多音频播放进度条问题
2018/08/28 Javascript
JavaScript+HTML5 canvas实现放大镜效果完整示例
2019/05/15 Javascript
解决Layui中templet中a的onclick参数传递的问题
2019/09/20 Javascript
[49:05]Newbee vs TNC 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[01:23:45]DOTA2-DPC中国联赛 正赛 CDEC vs Dragon BO3 第一场 1月22日
2021/03/11 DOTA
Python pandas常用函数详解
2018/02/07 Python
Python列表推导式与生成器表达式用法示例
2018/02/08 Python
python opencv 图像尺寸变换方法
2018/04/02 Python
Python 文本文件内容批量抽取实例
2018/12/10 Python
Python安装selenium包详细过程
2019/07/23 Python
Python空间数据处理之GDAL读写遥感图像
2019/08/01 Python
澳大利亚领先的运动鞋商店:Hype DC
2018/03/31 全球购物
环境工程与管理大学毕业生求职信
2013/10/02 职场文书
单位在职证明书
2014/09/11 职场文书
领导班子奢靡之风查摆问题及整改措施
2014/09/27 职场文书
工程部经理岗位职责
2015/02/02 职场文书
护士求职自荐信范文
2015/03/04 职场文书
2015双创工作总结
2015/07/24 职场文书
MySQL InnoDB ReplicaSet(副本集)简单介绍
2021/04/24 MySQL
浅谈JS和Nodejs中的事件驱动
2021/05/05 NodeJs
Python中else的三种使用场景
2021/06/16 Python
详解java如何集成swagger组件
2021/06/21 Java/Android
一次线上mongo慢查询问题排查处理记录
2022/03/18 MongoDB