微信小程序封装请求的js

1.配置访问服务器的地址config.js:


const config = {//192.18.1.2:8083 https://www.so.com/ api_base_url: 'http://192.168.1.12:8083', // api_base_url:"https://www.baidu.com", img_base_url: '' } export { config }

 

2.封装http请求http.js:

import { config } from './config.js'

const tips = {
  1: '抱歉,出现了一个错误',
  205: '暂无数据!',
  300:'页面重定向,注意信息安全!',
  400:'语法格式有误!,请检查错误输入',
  401: '登录失败!',
  404:'页面资源错误!',
  500:'服务器错误!'
}

class HTTP {
  request({ url, data = {}, method = 'GET' }) {
    return new Promise((resolve, reject) => {
      this._request(url, resolve, reject, data, method)
    })
  }
  _request(url, resolve, reject, data = {}, method = 'GET') {
    wx.request({
      url: config.api_base_url + url,
      method: method,
      data: data,
      header: {
        // 'content-type': 'application/json'
        'content-type': method == 'GET' ? 'application/json' : 'application/x-www-form-urlencoded',
        'Accept': 'application/json'
      },
      success: (res) => {
        // console.log('你好请求成功', res.statusCode, code.startsWith('2'))
        const code = res.statusCode.toString()
        // console.log('http你好请求成功', res,res.statusCode, code.startsWith('2'))
        if (code.startsWith('2')) { // 一般情况下正确的请求结果是以2开头的(200)
          // console.log("code.startsWith('2')", code)
          resolve(res.data)
        }
        else {
          reject(res)
          const error_code = res.data.code
          this._show_error(error_code, res.data)
        }
      },
      fail: (err) => {
        reject(err)
        this._show_error(1)
      }
    })
  }

  _show_error(error_code,data) {
    // console.log("tips[error_code]", error_code)
    if (!error_code) {
      error_code = 1
    }
    const tip = tips[error_code] //= data.data
    wx.showToast({
      title: tip ? tip : tips[1],  // tips内没找到对应的错误代码时,使用1代替
      icon: 'none',
      duration: 2000
    })
  }

}

export { HTTP }

 

3.分装每一个或者通用的请求itemapi.js:

import { HTTP } from './http.js'


class DemoModel extends HTTP {
  // 1、学生端
  // 验证微信号是否注册
  verificationWecat(data) {
    return this.request({ url: '/Wec/verificationWecat', data: data, method: 'POST' })
  }
  // 修改用户信息
  updateUserInfo(data) {
    return this.request({ url: '/Wec/updateUser', data: data, method: 'POST' })
  }
  // 添加用户
  addUser(data) {
    return this.request({ url: '/Wec/addUser', data: data, method: 'POST' })
  }

  // 小程序获取学校内店铺信息
  getStoreList(data) {
    return this.request({url: '/Wec/queryDepStoreBySchId',data: data,method: 'GET'})
  };
  // 获取店铺下的所有产品,并按照分类进行查询
  getStoreProduct(data) {
    return this.request({ url: '/Wec/queryProductByDsId', data: data, method: 'GET' })
  };
  // 根据用户id查询用户地址列表
  userCheckAdress(data) {
    return this.request({ url: '/Wec/queryUserAddressByUsrId', data: data, method: 'GET' })
  };
  // 根据地址id查询用户地址
  adressCheckUser(data) {
    return this.request({ url: '/Wec/queryUserAddressById', data: data, method: 'GET' })
  };

// 修改用户地址
  adressCheckUser(data) {
    return this.request({ url: '/Wec/updateUserAddress', data: data, method: 'POST' })
  };
// 添加用户地址
  addAdress(data){
    return this.request({ url: '/Wec/addUserAddress', data: data, method: 'POST' })
  }
// 根据用户id查询用户地址列表
  checkAdress(data) {
    return this.request({ url: '/Wec/queryUserAddressByUsrId', data: data, method: 'GET' })
  }

  commonfunc(url, data, method) {
    return this.request({ url: url, data: data, method: method })
  }



// 2、管理端
}

export {
  DemoModel
}

 

4.使用方法:

import { DemoModel } from '../../../wxapi/itemapi.js'
const apiModel = new DemoModel()
lifetimes: {
    attached: function () {
      var that =this
      // 在组件实例进入页面节点树时执行
      apiModel.getStoreList({ schId: 1,}).then(res => {
        if (res.code =='200'){
          this.setData({ list: res.data });

        }else{
          wx.showToast({
            title: res.data,
            icon:'none'
          })
        }
      }).catch(err => {
        console.log('请求失败err',err)
      });
    },
    detached: function () {
      // 在组件实例被从页面节点树移除时执行
     
    },

 

posted @ 2019-12-04 12:03  L某人  阅读(736)  评论(0编辑  收藏  举报