微信ウィジェットインタフェースパッケージ、原生インタフェースパッケージ、request、promiseパッケージ

18109 ワード

みんなが微信の小さいプログラムをする时多くの地方がインタフェースを呼び出す必要があることを信じて、pcと携帯電話の端と同じように、多くのページが何度も呼び出すのは多くの状態があって、それではみんなの開発時間を節約するために要求したインタフェースにいくつかの簡単なパッケージをしなければならなくて、開発しやすくて、ここで私は2つのjsを使って、1つのjsのパッケージは方法名で、もう1つはインタフェース名で、統合管理
次は統合インタフェースメソッドパッケージです
const baseURL = "   ";
const request = params => {
  const token = wx.getStorageSync("token").token;
  return new Promise((resolve, reject) => {
    wx.showLoading();
    wx.request({
      url: baseURL + params.url,
      data: params.data,
      method: params.method,
      header: {
        'content-type': 'application/x-www-form-urlencoded;charset=utf-8',
        token: token
      },
      success(res) {
        const pages = getCurrentPages();
        if (res.statusCode === 200) {
          if (res.data.code === 200) {
            resolve(res.data);
          } else if (res.data.code === 401) {
            wx.navigateTo({
              url: '/pages/login/index',
            })
          } else {
            if (res.data.code == 1104) {
              wx.clearStorageSync()
              wx.redirectTo({
                url: '/pages/login/index',
              })
            } else {
              reject(res.data);
            }
          }
        }
      },
      fail(err) {
        reject(err);
      },
      complete() {
        wx.hideLoading();
      }
    });
  });
};
const _upload = (filePath, type) => {
  const token = wx.getStorageSync("token").access_token;
  return new Promise((resolve, reject) => {
    wx.showLoading();
    wx.uploadFile({
      url: baseURL + "upload_file", //    ,        
      filePath,
      name: "file",
      header: {
        authorization: token ? "Bearer " + token : undefined
      },
      formData: {
        type
      },
      success(res) {
        resolve(JSON.parse(res.data));
      },
      fail(err) {
        reject(err);
      },
      complete() {
        wx.hideLoading();
      }
    });
  });
};
const _get = (url, data) => {
  return request({
    url,
    data,
    method: "GET"
  });
};
const _post = (url, data) => {
  return request({
    url,
    data,
    method: "POST"
  });
};
const _put = (url, data) => {
  return request({
    url,
    data,
    method: "PUT"
  });
};
const _delete = (url, data) => {
  return request({
    url,
    data,
    method: "DELETE"
  });
};
module.exports = {
  baseURL,
  _get,
  _post,
  _put,
  _delete,
  _upload
};


次は統合されたインタフェース管理です
import { _get, _post, _put, _delete, _upload } from "./request";

//     
const getUploadImg = data => {
  return _post("   ", data);
};
module.exports = {
  getUploadImg
};


パッケージングは簡単で乱暴ですが、わかりやすく使うときはページに直接導入すればいいのです