lhl66

研究小程序的路上越走越远....坑很多 很不习惯刚刚开始

在utils文件夹下面新增api.js  http.js文件

// http.js
module.exports = {
  http(url, method, params) {
     // 获取token,自行获取token和签名,token和签名表示每个接口都要发送的数据
    let token = \'\'
     // 获取签名 (后台怎么定义的,就传什么) 具体情况穿不穿
    let sign = \'\'
    let data = {
      token,
      sign
    }
    // 在这里判断一下data是否存在,params表示前端需要传递的数据,params是一个对象,有三组键值对,
    // data:表示请求要发送的数据,success:成功的回调,fail:失败的回调,这三个字段可缺可无,其余字段会忽略
    if (params.data) { 
      for (let key in params.data) { // 在这里判断传过来的参数值为null,就删除这个属性
        if (params.data[key] == null || params.data[key] == \'null\') {
          delete params.data[key]
        }
      }
      data = {
        ...data,
        ...params.data
      }
    }
     // 就是拼接上前缀,此接口域名是开放接口,可访问 如果开发环境可以勾选详情选项的 不校验合法域名、TLS版本及HTTPS证书
    wx.request({
      url: \'合法域名\' + url,
      // 判断请求类型,除了值等于\'post\'外,其余值均视作get其他的请求类型也可以自己加上的
      method: method == \'post\' ? \'post\' : \'get\', 
      data,
      // post请求 把header 该为 application/x-www-form-urlencoded 就可以了
      header: {
        \'content-type\': method == \'get\' ? \'application/json\' : \'application/x-www-form-urlencoded\'
      },
      success(res) {
        params.success && params.success(res.data)
      },
      fail(err) {
        wx.showToast({
          title: \'服务器内部错误\',
          icon: \'none\',
          duration: 1500
        })
        params.fail && params.fail(err)
      },
      complete() {
        setTimeout(() => {
          wx.hideLoading();
        },1500)
      }
    })
  }
}
// api.js
// 在这里面定义所有接口,一个文件管理所有接口,易于维护
// 引入刚刚封装好的http模块,import属于ES6的语法,微信开发者工具必须打开ES6转ES5选项
import { http } from \'./http\'; 

// 每一个接口定义一个函数,然后暴露出去,供逻辑代码调用
// 接口请求的路由地址以及请求方法在此处传递
function postLoginApi(params) { 
  http(\'/api/xxx/login\', \'post\', params)
}

function getUserListApi(params) { 
  http(\'/api/xxx/list\', \'get\', params) 
}

// 暴露接口
export default { 
  postLoginApi,
  getUserListApi
}

页面调用


  import http from \'../../utils/api\' // 引入api接口管理文件
getData(){
    http.postLoginApi({ // 调用接口,传入参数
      data: {
        token: \'460512FF0FE2392D6CB6D8A6560805CC\'
      },
      success: res => {
        console.log(\'接口请求成功\', res)
        this.setData({
          // data定义的数据
          userInfo: res.data
        })
      },
      fail: err => {
        console.log(err)
      }
    })
  },
onLoad: function (){
    this.getData()
}

  原创未经允许不得转载!!!转载请注明出处~谢谢合作;

分类:

技术点:

相关文章: