微信小程序api请求封装(多环境)

文章介绍了如何在微信小程序中封装untils.js以实现消息提示功能,包括显示消息提示框、loading加载提示和模态对话框。同时,文章详细阐述了新建API文件夹并创建api.js、request.js和config.js三个文件,用于管理不同环境的URL和进行网络请求的二次封装,其中request.js中结合了untils.js的提示功能,并处理了请求成功与失败的情况。
摘要由CSDN通过智能技术生成

一、untils.js封装常用消息提示加载模态框

// 显示消息提示框
export function Toast(title, type, time, isshow) {
  wx.showToast({
    title: title,
    icon: type,
    duration: time,
    mask: isshow
  })
}
// 显示 loading 提示框。需主动调用 wx.hideLoading 才能关闭提示框
export function Loading(title) {
  wx.showLoading({
    title: title,
  })
}
// 显示模态对话框
export function Modal(title,content) {
  return new Promise((resolve,reject)=>
  wx.showModal({
    title: '提示',
    content: '这是一个模态弹窗',
    success (res) {
      if (res.confirm) {
        console.log('用户点击确定')
        resolve(res.confirm)
      } else if (res.cancel) {
        console.log('用户点击取消')
        resolve(res.cancel)
      }
    }
  })
  )  
}

二、新建api文件夹以及api文件夹下的api.js request.js config.js 三个文件

1.config.js(主要放各种环境)

代码如下(示例):

// 开发环境url 
export const dev = 
   baseUrl: "http://192.168.125.2xxxxx",
;
// 测试环境url
export const test = 
  baseUrl: "http://www.xxx.com"
;
// 线上环境url
export const prod = 
  baseUrl: 'https://www.xxx.com'
;

2.request.js

//引入untils.js封装的一些消息提示框
import 
  Toast,
  Loading,
  Modal
 from './utils.js'

// 引入config中的url(后面点什么就是 什么环境)
 const 
  baseUrl
 = require('./config').dev  //这里用的是ES6的写法

module.exports = 
  // 二次封装wx.request
  request: (url, method, data) => 
    //url: 为网络接口后面要拼接的动态路径
    //method: 为请求方式
    //data: 为要传递的参数 object类型
     let _url = `$baseUrl/$url` //子域名按需添加
    // let _url = `$baseUrl$son/$url`

         //设置请求头
      var header = 'content-type': 'application/json'
      
      //检查缓存中有没有token
      var token = wx.getStorageSync('token')
      if(token != '') 
        //  header.Authorization = token;
        header['X-Access-Token'] = token;   // 键由后端定义
      
    return new Promise((resolve, reject) => 
      Loading('正在加载中')
      wx.request(
        url: _url,
        data: data,
        method: method,
        header: header,
       /* success: (res) => 
           if (res.data.code == 200) 
             resolve(res)
             wx.hideLoading();
            else 
             Toast('数据请求错误', 'error', 1000)
            //  console.log('操作失误:',res);
             wx.hideLoading();
           
        ,
        fail: (err) => 
          reject(err)
         */
		 complete: (res) =>      //根据公司业务需求做出调整
                wx.hideLoading()
                if(res.statusCode==200)
                    if(res.data.status)
                        resolve(res.data.data)
                    else
                        Toast(res.data.msg)
                        reject(res.data.data)
                    
                else if (res.statusCode === 401)  
                    //没有登录转跳到登录页面
                    wx.reLaunch(
                        url: '/pages/login/index'
                    )
                else   
                    Toast('请求失败,请稍后重试');
                
            
      )
    )

3.api.js

import request from './request'
export function login(data) => 
    return request('/appletslogin/appletsLogin/login', 'post', data);
  ,

三、页面使用

// 注意引入路径
const api = require('../../api/index')
 
// 在方法中调用(注意)
 goRegister(){
 //需要传入的参数
    let data = {
      aaa: this.data.cardCur,
      bbb: this.data.notice,
    }
    api.login(data).then((res) => {
      console.log(res,'res');
    }).catch()
  },
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值