npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

yaoxfly-request

v0.1.10

Published

ajax请求插件

Downloads

6

Readme

yaoxfly-request

介绍

基于 axios/flyio 封装的一个请求库,支持 web、app、小程序(使用 fiyio 做请求)等 http 请求; 支持 restFul 接口 可发送,get post patch put delete 等请求; 支持 axios 和 fly.js 库的切换可进行拦截处理,自动弹出, http 请求错误、请求异常信息,未登录拦截等,具体实现通过配置参数、方法等实现。

安装教程

npm i yaoxfly-request

前期准备

在 src(源代码)文件夹新建 request 文件夹并在里面建立 index.js 文件,参考配置方案稍后详见。

restFul api 请求方法

  • get
this.$YxRequest
  .get(url, param, config)
  .then(res => {
    console.log(res);
  })
  .catch(err => {
    console.log(err);
  });
  • post 请求
this.$YxRequest
  .post(url, param, config)
  .then(res => {
    console.log(res);
  })
  .catch(err => {
    console.log(err);
  });
  • patch 请求
this.$YxRequest
  .patch(url, param, config)
  .then(res => {
    console.log(res);
  })
  .catch(err => {
    console.log(err);
  });
  • put 请求
this.$YxRequest
  .put(url, param, config)
  .then(res => {
    console.log(res);
  })
  .catch(err => {
    console.log(err);
  });
  • delete 请求
this.$YxRequest
  .delete(url, param, config)
  .then(res => {
    console.log(res);
  })
  .catch(err => {
    console.log(err);
  });
  • 全部请求 可传各种类型请求, 可添加 headers 参数
this.$YxRequest
  .requests(url, param, type, config)
  .then(res => {
    console.log(res);
  })
  .catch(err => {
    console.log(err);
  });
  • 上传文件类型的请求 只能是 post 提交 可添加 headers 参数
 this.$YxRequest.submitFormData(url,param, {loading = true, headers = {},timeout = 0 })
 .then(res => {
     console.log(res);s
 })
 .catch(err =>{
   console.log(err);
 })

方法参数说明

在 this.$YxRequest 可调用的方法的里参数说明 | 参数 |类型| 说明 |是否必填| |:---:| :--: | :----: |:--:| | url | String |api 地址 | true| | param | Object |后台 接收的参数 |true| | config | Object | 扩展配置项 添加如 qs、loading 等配置|false| | type| String| 请求类型 如 get、post、patch、put、delete 等,当前参数只有 requests 方法可设置, 默认是 post| false |

config 配置参数说明 | 参数 |类型| 说明 |是否必填| |:---:| :--: | :----: |:--:| | loading| Boolean| 当前请求是否开启 loading 默认是 true| false| | qs| Boolean| 是否开启 qs 强转 默认是 true| false | | headers | Object | 传 headers 参数 默认是 {}, 当前参数只有 submitFormData、requests 方法可设置 |false| | timeout | Number | 超时时间 默认为 0 无限制 当前参数只有 submitFormData 方法 能设置|false|

request/index.js 配置说明

  • 在 request/index.js 文件里引入 yaoxfly-request
import YxRequest from "yaoxfly-request";
Vue.use(YxRequest);
export default new YxRequest({});
  • 在 main.js 文件里
import YxRequest from "./request";
new Vue({
  router,
  store,
  YxRequest, //当前名字不可更改 一定要YxRequest
  render: h => h(App)
}).$mount("#app");
  • request/index.js 配置参考
import Vue from "vue";
import Fly from "flyio/dist/npm/fly.js";
import qs from "qs";
import YxRequest from "yaoxfly-request";
Vue.use(YxRequest);
const $this = new Vue(); //实例化 vue,普通的 this 用不了
const ONLINE_DOMAN_NAME =
  window.location.protocol + "//" + window.location.host; //协议加域名
let loading = ""; //动画
const fly = new Fly();
export default new YxRequest({
  //请求配置
  requestConfig: {
    request: fly, //请求名 flyio/axios
    type: "fly", //请求类型
    qs: qs,
    headers: {
      token: 22221111,
      "content-Type": "application/x-www-form-urlencoded" //php 的 post 传输请求头一定要这个 不然报错 接收不到值
    },
    timeout: 30000,
    baseURL:
      process.env.NODE_ENV === "development"
        ? "http://www.ericssons.com"
        : ONLINE_DOMAN_NAME + "/project/ericsson/",
    withCredentials: true
  },
  //动画配置
  loading: {
    isLoading: true, //是否开启动画
    limitTime: 200, // 接口请求在 xxxms 内完成则不展示 loading
    loadingShow: () => {
      loading = $this.$loading({
        lock: false,
        background: "rgba(0, 0, 0, 0.1)"
      });
    },
    loadingHide: () => {
      if (loading) {
        loading.close();
      }
    }
  },
  //错误自动提示
  resError: {
    key: "code", // 与后台规定的状态码的值
    msg: "msg", //与后台规定的消息值 key 值必须是 msg 右边可改
    value: -1, // 与后台规定的表示登录失败的 code 值
    // 接口异常默认提示的方法
    tipShow: err => {
      // console.log(err)
      setTimeout(() => {
        $this.$message(err);
      }, 200);
    },

    //登录失败提示并跳转
    notLogin: err => {
      // console.log(err)
      setTimeout(() => {
        $this.$message(err);
      }, 200);

      setTimeout(() => {
        window.location = "http://www.baidu.com";
      }, 1000);
    },

    //不成功的提示
    notSuccessful: (code, err) => {
      //0 成功 -6有继续操作的错误提示 -1 登录
      switch (code) {
        case 0:
        case -6:
        case -1:
          break;
        default:
          setTimeout(() => {
            $this.$message(err);
          }, 200);
      }
    }
  },

  //路由登录权限控制 (可以让路由不需要登录,也可跳转)false不需要验证,根据uni-app进行配置的如有报错可修改或删除。
  accessControl: {
    routeValidate: () => {
      let pages = getCurrentPages(); //获取加载过的路由
      let currPage = pages[pages.length - 1]; //获取当前页路由
      switch (currPage.route) {
        case "pages/advisory/counselor/CounselorList":
        case "pages/advisory/counselor/CounselorInfo":
          return false;
        default:
          return true;
      }
    }
  }
});

tips:当前 loading 使用的是 elementUi 的动画可自行修改,需要下载 flyio/axios、qs、elementUi。

配置参数
  • 请求配置 requestConfig *
requestConfig: {
  request: '', //请求名 flyio/axios
  type: '', //请求类型
  qs: '', //qs
  headers: {}//请求头
  timeout: 30000, //请求超时
  baseURL:'' //基础地址
  withCredentials: true //是否跨域携带cookie
}
  • 请求拦截 loading 配置 *
loading: {
    isLoading: true, //是否开启动画
    limitTime: 200, //接口请求在 xxxms 内完成则不展示 loading
    loadingShow: () => {//动画展示 请求拦截前
    },
    loadingHide: () => {//动画关闭 请求拦截后
    }
  }
  • 请求错误 resError 配置 *
resError: {
  key: '', // 与后台规定的状态码的值
  msg: '', //与后台规定的消息值
  value: '', // 与后台规定的表示登录失败的 code 值
  tipShow: err => { // 接口异常提示的方法 http请求错误提示
  },
  notLogin: err => { //登录失败提示并设置跳转到登录 界面
  },
  notSuccessful: (code, err) => { //后台接口请求不成功的提示 不是异常错误 比如电话不能为空等提示
  }
}
  • 路由权限 accessControl 配置
//路由登录权限控制 (可以让路由不需要登录,也可跳转) 返回值是 false不需要验证 true 需要验证
accessControl: {
  routeValidate: () => {};
}

tips:以上不打*号的不是必须配置可自行决定是否配置