[小程序] 封装request

192 阅读1分钟

封装request

1. utils/util文件下封装 util.js

var api = require('../../config/api.js'); 
/**
 * 微信的的request封装
 * @param {String} url
 * @param {Object} data传递的对象参数
 * @param {String} method 合法值GET/POST/PUT
 */
function request(url, data = {}, method = "GET") {
  return new Promise(function (resolve, reject) {
    wx.request({
      url: url,
      data: data,
      method: method,
      header: {
        'Content-Type': 'application/json',
        'X-Nideshop-Token': wx.getStorageSync('token')
      },
      success: function (res) {
        resolve(res)
      },
      fail: function (err) {
        reject(err)
      }
    })
  });
}
/**
* 接口注册管理
*/
//所有类型接口的调用
let findTypes = (data) => {
    return new Promise((resolve,reject) => {
        resolve(request(api.baseUrl,data,'GET'))
    })
}
//所有地点接口的调用
let findLocations = (data) => {
  return new Promise((resolve) => {
    resolve(request(api.baseUrl,data,'GET'))
  })
}
module.exports = {
    request,
    findType,
    findLocations,
}

2. 引入使用

var util = require('../../utils/util.js');
var api = require('../../config/api.js'); 

Page({
   onLoad: function () {
        //第一种调用
        util.request(api.baseUrl, {
            act: 'findTypes',
            userId:'001'
        }).then(res => {
            console.log(res)
        })
        //第二种调用
        let params ={
            act:'findTypes',
            userId:'001'
        }
        util.findTypes(params).then((res) => {
            cosole.log(res)
        })
        //所有地点接口的调用
        util.findLocations({
            act:'findLocations',
            userId:'001'
        }).then((res) => {
            console.log(res)
        })
    },  
})
2-1. config/api api.js
const baseUrl = 'https://www.hiolabs.com/api/'; //基本的接口链接

module.exports = {
    //首页
    IndexUrl: ApiRootUrl + 'index/appInfo', //首页数据接口
}