yb课堂 基于浏览器和node.js的http客户端Axios 《三十四》
什么是Axios
- 基于promise用于浏览器和node.js的http客户端
- 支持浏览器和node.js
- 支持Promise API
- 支持拦截请求和响应
- 支持转换请求和响应数据
- JSON数据的自动转换
- 客户端支持已防止XSRF
- 官方文档地址:http://www.axios-js.com/zh-cn/docs/
安装 cnpm install axios
GET请求例子
// 为给定 ID 的 user 创建请求
axios.get('/user?ID=12345')
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
}); // 上面的请求也可以这样做
axios.get('/user', {
params: {
ID: 12345
}
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
POST请求例子
axios.post('/user', {
firstName: 'Fred',
lastName: 'Flintstone'
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
执行多个并发请求
function getUserAccount() {
return axios.get('/user/12345');
}
function getUserPermissions() {
return axios.get('/user/12345/permissions');
}
axios.all([getUserAccount(), getUserPermissions()])
.then(axios.spread(function (acct, perms) {
// 两个请求现在都执行完成
}));
使用axios封装请求后端api接口
在src下创建Request.js
Request.js
import axios from 'axios'
const service=axios.create({
// url=base url+request url
baseURL:"http://127.0.0.1:8081",
//配置请求超时时间
timeout:5000
})
//全局导出
export default service
在src下创建api文件夹
在src/api下创建getData.js
import axios from '../Request' //注册接口
export const registerApi = (name, phone, pwd) => axios.post("/api/v1/pri/user/register", {
name,
phone,
pwd
}) //登陆接口
export const loginApi = (phone, pwd) => axios.post("/api/v1/pri/user/login", {
"phone": phone,
"pwd": pwd
}) //轮播图
export const getBanner = () => axios.get("/api/v1/pub/video/list_banner") //视频列表
export const getVideoList = () => axios.get("/api/v1/pub/video/list") //视频详情
export const getVideoDetail = (vid) => axios.get("/api/v1/pub/video/find_detail_by_id", {
params: {
video_id: vid
}
}) //下单接口
export const saveOrder = (token, vid) => axios.post("/api/v1/pri/order/save", {
"video_id": vid
}, {
headers: {
"token": token
}
}) //订单列表
export const getOrderList = (token) => axios.get("/api/v1/pri/order/list", {
params: {
"token": token
}
}) //用户信息接口
export const getUserInfo = (token) => axios.get("/api/v1/pri/user/find_by_token", {
params: {
"token": token
}
})
项目结构

yb课堂 基于浏览器和node.js的http客户端Axios 《三十四》的更多相关文章
- 基于promise用于浏览器和node.js的http客户端的axios
axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端,它本身具有以下特征: 从浏览器中创建 XMLHttpRequest 从 node.js 发出 http 请求 支 ...
- JS基础入门篇(三十四)— 面向对象(一)
1.对象 对象的定义 : 对象 是 由 键值对 组成的无序集合. 创建对象两种方法 : 方法一 : 字面量方法 var obj = {name: "k"}; 方法二 : new O ...
- JS基础入门篇(三十五)—面向对象(二)
如果没有面向对象这种抽象概念的小伙伴,建议先看一下我写的JS基础入门篇(三十四)-面向对象(一)
- iKcamp团队制作|基于Koa2搭建Node.js实战项目教学(含视频)☞ 环境准备
安装搭建项目的开发环境 视频地址:https://www.cctalk.com/v/15114357764004 文章 Koa 起手 - 环境准备 由于 koa2 已经开始使用 async/await ...
- iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 记录日志
沪江CCtalk视频地址:https://www.cctalk.com/v/15114923883523 log 日志中间件 最困难的事情就是认识自己. 在一个真实的项目中,开发只是整个投入的一小部分 ...
- iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 处理静态资源
视频地址:https://www.cctalk.com/v/15114923882788 处理静态资源 无非花开花落,静静. 指定静态资源目录 这里我们使用第三方中间件: koa-static 安装并 ...
- iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 视图Nunjucks
视频地址:https://www.cctalk.com/v/15114923888328 视图 Nunjucks 彩虹是上帝和人类立的约,上帝不会再用洪水灭人. 客户端和服务端之间相互通信,传递的数据 ...
- 基于 Koa平台Node.js开发的KoaHub.js的控制器,模型,帮助方法自动加载
koahub-loader koahub-loader是基于 Koa平台Node.js开发的KoaHub.js的koahub-loader控制器,模型,帮助方法自动加载 koahub loader I ...
- iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 错误处理
沪江CCtalk视频地址:https://www.cctalk.com/v/15114923887518 处理错误请求 爱能遮掩一切过错. 当我们在访问一个站点的时候,如果访问的地址不存在(404), ...
- iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 解析JSON
视频地址:https://www.cctalk.com/v/15114923886141 JSON 数据 我颠倒了整个世界,只为摆正你的倒影. 前面的文章中,我们已经完成了项目中常见的问题,比如 路由 ...
随机推荐
- 纯JavaScript实现“返回顶部”和“评分”,“分享”等小功能
1.返回顶部功能的实现 <!DOCTYPE html> <html> <head> <title>Back to Top</title> & ...
- 有隙可乘 - Android 序列化漏洞分析实战
作者:vivo 互联网大前端团队 - Ma Lian 本文主要描述了FileProvider,startAnyWhere实现,Parcel不对称漏洞以及这三者结合产生的漏洞利用实战,另外阐述了漏洞利用 ...
- PageOffice 6 给SaveFilePage指向的保存地址传参
PageOffice给保存方法传递参数的方式有两种: 通过设置保存地址的url中的?传递参数.例如: poCtrl.setSaveFilePage("/save?p1=1") 通过 ...
- wxpython模块详解
一.python gui(图形化)模块介绍: Tkinter :是python最简单的图形化模块,总共只有14种组建 Pyqt :是python最复杂也是使用最广泛的图形化 Wx ...
- 【漏洞复现】CVE-2023-27372 RCE漏洞
产品介绍 SPIP是一个互联网发布系统,其中非常重视协作工作,多语言环境和Web作者的易用性.它是自由软件,在GNU/GPL许可证下分发.这意味着它可以用于任何互联网站点,无论是个人的还是机构的,非营 ...
- docker安装MySQL8.0.35主从复制(实战保姆级)
很久没有记录了,今天有时间就记录一下最近安装遇到的问题 liunx安装docker这个是前提,就不多过述 1 准备两台服务器 10.104.13.139 10.104.13.140 2 确保liunx ...
- etcd MVCC 存储结构及流程
什么是 MVCC MVCC 是 Multi-Version Concurrency Control 的缩写,即多版本并发控制.它是一种并发控制的方法,用于在数据库系统中实现事务的隔离性.MVCC 是一 ...
- CSS——引入方式
1.行内式 <div style="color: white;background-color: #369;text-align: center">行内设置</d ...
- winfrom 程序自己删除自己
[DllImport("kernel32.dll")] public static extern uint WinExec(string lpCmdLine, uint uCmdS ...
- python利用flux基本读写influxDB
1.读取 QuerApi 形式 python 利用 flux 语句查询 influxdb 数据. https://influxdb-client.readthedocs.io/en/latest/ap ...