zoukankan      html  css  js  c++  java
  • 微信小程序-wx.request的封装实现

    httpExt.js

    const app = getApp()
    const util = require('/util.js')
    
    /**
     * wx.request的封装
     * 使用方式: httpExt.get("admin/login", {}).then(res => {}).catch(err => {})
     * @param {*} url 请求地址
     * @param {*} method 请求类型
     * @param {*} data 请求参数
     * @param {*} options 接口配置
     */
    const request = (url, method, data, options) => {
      wx.showLoading({
        title: '加载中',
        mask: true
      })
      return new Promise((resolve, reject) => {
        wx.request({
          url: util.getUrl(url),
          method: method || 'GET',
          data: method === 'GET' ? options.data : JSON.stringify(options.data),
          header: {
            'Content-Type': 'application/json; charset=UTF-8',
            // 'token': wx.getStorageSync("SSP_token")
          },
          success(res) {
            if (res.data.success == true) {
              resolve(res)
            } else {
              reject(res)
            }
          },
          fail(error) {
            reject(error)
          },
          complete: info => {
            wx.hideLoading()
          }
        })
      })
    }
    
    const get = (url, data = {}, options = {}) => {
      return request(url, 'GET', data, options)
    }
    const post = (url, data = {}, options = {}) => {
      return request(url, 'POST', data, options)
    }
    module.exports = {
      get,
      post
    }

    util.js

    const hosts = require("/hosts.js")
    
    const formatTime = date => {
      const year = date.getFullYear()
      const month = date.getMonth() + 1
      const day = date.getDate()
      const hour = date.getHours()
      const minute = date.getMinutes()
      const second = date.getSeconds()
    
      return `${[year, month, day].map(formatNumber).join('/')} ${[hour, minute, second].map(formatNumber).join(':')}`
    }
    
    const formatNumber = n => {
      n = n.toString()
      return n[1] ? n : `0${n}`
    }
    
    
    const getUrl = (url) => {
      if (url.indexOf('://') == -1) {
        url = hosts.actualHost.mainHostName + url;
      }
      return url
    }
    
    module.exports = {
      getUrl,
      formatTime
    }

    hosts.js

    // pro 生产环境 sit 测试环境 (上线前需要修改为'pro')
    const hostType = 'sit'
    const version = '1.0'
    
    const host = {
      /**
       * 主服务域名
       */
      mainHostName: new Map([
        ['pro', 'xxxxx'],
        ['sit', 'xxxxxx']
      ])
    }
    
    const actualHost = {
      mainHostName: host.mainHostName.get(hostType)
    }
    
    export {
      actualHost,
      hostType,
      version
    }

    使用:

    const httpExt = require('../../utils/httpExt.js')
    
              httpExt.get("xxxx", {}).then(res => {
                // 接口成功操作
              }).catch(err => {
                console.log("error:", err);/*  */
                // 接口失败操作
                wx.showToast({
                  title: err.data.msg||"服务异常,请稍后重试!",
                  icon: 'error',
                  duration: 2000
                })
              });
  • 相关阅读:
    linux防火墙iptables
    etc/fstab
    EDT改成CST
    echo
    dd
    chown
    CAT
    Linux grep
    CHECKSUM比较两表字段值差异
    通过GitHub部署项目到Nginx服务器
  • 原文地址:https://www.cnblogs.com/zhaomeizi/p/14442066.html
Copyright © 2011-2022 走看看