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 相关文章推荐
js本身的局限性 别让javascript做太多事
Mar 23 Javascript
javascript写的一个模拟阅读小说的程序
Apr 04 Javascript
jquery 插件实现多行文本框[textarea]自动高度
Mar 04 Javascript
JS中sort函数排序用法实例分析
Jun 16 Javascript
jQuery简单动画变换效果实例分析
Jul 04 Javascript
js无提示关闭浏览器窗口的两种方法分析
Nov 06 Javascript
Bootstrap CSS布局之表格
Dec 17 Javascript
jquery横向纵向鼠标滚轮全屏切换
Feb 27 Javascript
jQuery实现选项卡功能(两种方法)
Mar 08 Javascript
JS脚本实现网页自动秒杀点击
Jan 11 Javascript
vue translate peoject实现在线翻译功能【新手必看】
Jun 07 Javascript
vue  自定义组件实现通讯录功能
Sep 30 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
php中修改浏览器的User-Agent来伪装你的浏览器和操作系统
2011/07/29 PHP
利用php实现禁用IE和火狐的缓存问题
2012/12/03 PHP
PHP临时文件的安全性分析
2014/07/04 PHP
PHP解析RSS的方法
2015/03/05 PHP
CodeIgniter自定义控制器MY_Controller用法分析
2016/01/20 PHP
PHP实现的通过参数生成MYSQL语句类完整实例
2016/04/11 PHP
php中this关键字用法分析
2016/12/07 PHP
用php实现分页效果的示例代码
2020/12/10 PHP
Nigma vs AM BO3 第二场2.13
2021/03/10 DOTA
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
用javascript实现读取txt文档的脚本
2007/07/20 Javascript
JQuery的ajax获取数据后的处理总结(html,xml,json)
2010/07/14 Javascript
Node.js编程中客户端Session的使用详解
2015/06/23 Javascript
js 求时间差的实现代码
2016/04/26 Javascript
浅谈jQuery中的checkbox问题
2016/08/10 Javascript
JQuery遍历元素的父辈和祖先的方法
2016/09/18 Javascript
JavaScript中 DOM操作方法小结
2017/04/25 Javascript
js下拉菜单生成器dropMenu使用方法详解
2017/08/01 Javascript
ReactNative 之FlatList使用及踩坑封装总结
2017/11/29 Javascript
基于javascript的拖拽类封装详解
2019/04/19 Javascript
[05:39]2014DOTA2国际邀请赛 DK晋级胜者组专访战队国士无双
2014/07/14 DOTA
[01:50:49]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第三场 1月24日
2021/03/11 DOTA
[01:00:49]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第二场 1月31日
2021/03/11 DOTA
利用ctypes提高Python的执行速度
2016/09/09 Python
Python多进程并发与多线程并发编程实例总结
2018/02/08 Python
Python requests模块实例用法
2019/02/11 Python
Python Django中间件,中间件函数,全局异常处理操作示例
2019/11/08 Python
解决Pycharm 导入其他文件夹源码的2种方法
2020/02/12 Python
django使用JWT保存用户登录信息
2020/04/22 Python
Python 捕获代码中所有异常的方法
2020/08/03 Python
CSS3的first-child选择器实战攻略
2016/04/28 HTML / CSS
html5 标签
2009/07/16 HTML / CSS
StubHub新加坡:购买和出售全球活动门票
2017/03/10 全球购物
Watchshop德国:欧洲在线手表No.1
2019/06/20 全球购物
残疾人小组计划书
2014/04/27 职场文书
2015年惩防体系建设工作总结
2015/05/22 职场文书