yb课堂 基于浏览器和node.js的http客户端Axios 《三十四》

Posted 陈彦斌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 《三十四》的主要内容,如果未能解决你的问题,请参考以下文章

yb课堂之单机和分布式应用的登陆校验解决方案 《七》

5款node.js相关的http工具

Day04_项目前端相关基础知识二

yb课堂之用户注册登陆模块《六》

在线教育_Day04_项目前端相关基础知识二

入门Node.js之HTTP