uni-app请求封装

在这里插入图片描述

//api接口配置
let subDomain = '' // 子域名,没有就等于''
const API_BASE_URL = 'https://nideshop.bluej.cn/api/' // 主地址//
//const API_BASE_URL = 'http://localhost:3000' //测试地址
const request = (url, method, data) => {
  let _url = API_BASE_URL + subDomain + url
  return new Promise((resolve, reject) => {
	  uni.showLoading({
	  	
	  })
    wx.request({
      url: _url,
      method: method,
      data: data,
      header: {
        'Content-Type': 'application/json'
      },
      success(request) {
        resolve(request.data)
		uni.hideLoading()
      },
      fail(error) {
        reject(error)
		uni.hideLoading()
      },
      complete(aaa) {
        // 加载完成
		uni.hideLoading()
      }
    })
  })
}
Promise.prototype.finally = function (callback) {
  var Promise = this.constructor;
  return this.then(
    function (value) {
      Promise.resolve(callback()).then(
        function () {
          return value;
        }
      );
    },
    function (reason) {
      Promise.resolve(callback()).then(
        function () {
          throw reason;
        }
      );
    }
  );
}
export default {
  request,
  // 首页接龙列表
  // getSolitaireList: (data) => request('/api/merch/solitaire', 'get', data),
  // // 注册登录
  // Login: (data) => request('/api/auth/login', 'post', data),
  // //小程序授权登录
  // JAppletlogin: (data) => request('/api/wxpro/login', 'get', data),
  // //获取分类:此分类是菜单左边的数据
  getIndex:(data)=>request('index/index','get',data)
 
}

import api from './request/index.js'
Vue.prototype.api = api

在这里插入图片描述
在这里插入图片描述

******************************************************************************

第二版本 (推荐)

在这里插入图片描述

index.js

let BASE_URL = '';
if(process.env.NODE_ENV === 'development'){
	BASE_URL = 'http://192.168.3.139:9300/';
}else if(process.env.NODE_ENV === 'production'){
	BASE_URL = 'http://192.168.3.139:9300/';
}
const instance = (url,method,data)=>{
	let _url = BASE_URL + url;
	uni.showLoading({
		title:''
	})
	return new Promise((resolve,reject)=>{
		uni.request({
			url:_url,
			method:method,
			data:data,
			header:{
				'Content-type':'application/json',
				'token':  uni.getStorageSync('token') ?  uni.getStorageSync('token') : ''
			},
			success(res) {
				resolve(res.data)
				uni.hideLoading()
			},
			fail(err) {
				reject(err)
				uni.hideLoading()
			}
		})
	})
}


Promise.prototype.finally = function (callback) {
  var Promise = this.constructor;
  return this.then(
    function (value) {
      Promise.resolve(callback()).then(
        function () {
          return value;
        }
      );
    },
    function (reason) {
      Promise.resolve(callback()).then(
        function () {
          throw reason;
        }
      );
    }
  );
}

export default{
	instance
}

api.js

import login from './book/login.js'

export const api = {
	login
}

login.js

import instance from '../index.js'

export default{
	login(data){
		return instance('user/login','post',data)
	}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值