1. Estructura de directorio
Primero cree index.js en el directorio env, configure el entorno de desarrollo dentro y expórtelo
//配置不同的开发环境
module.exports={
//开发环境
Dev:{
baseUrl:'http://123.207.32.32:8000/api/h8', //开发环境的接口
},
//测试环境
Test:{
baseUrl:'http://www.test.com'
},
//生产环境
Prod:{
baseUrl:'http://www.api.douban.com'
}
}
Ingrese al directorio http y defina todas las direcciones URL de solicitud de manera uniforme en config.js, lo cual es conveniente para el mantenimiento y la administración.
//定义请求路径并抛出对象
module.exports={
"banner":"/home/multidata",
"list":"/home/list"
}
Lanzar una función de solicitud en request.js, el valor de retorno de la función es un objeto de promesa
//封装wx.request()网络模块
//抛出一个函数 这个函数会返回一个promise对象
module.exports=(url,method,data)=>{
let p=new Promise((resolve,reject)=>{
wx.request({
url: url, //请求路径
method:method, //请求方式
data:Object.assign({
},data), //请求参数,使用浅拷贝
header:{
"Content":"application/text"}, //请求头,默认参数
success(res){
//成功的回调函数
resolve(res)
},
fail(err){
//失败的回调
reject(err)
}
})
})
return p;
}
El índice de la función de entrada, aquí está el archivo de entrada, para que otros sepan para qué se usa la carpeta y cómo usarla.
//入口函数,引入环境变量,路径和方法在此处统一调用
const Env=require('../env/index')
const Url=require('./config')
const Request=require('./request')
console.log(Request);
//确定当前环境
let baseUrl=Evn.Dev.baseUrl
//如果接口需要token鉴权,获取token
let token=wx.getStorageSync('token') //获取本地存储的token
//请求的函数
//banner请求
function banner(){
//调用该方法,传递路径(环境前缀+路径),方式,参数 函数结果会返回一个promise对象
return Request(baseUrl+Url.banner,'get',{
})
}
//xxx请求 直接照搬就行
//将封装好的方法抛出
module.exports={
banner
}
El último paso es importar el índice en el app.js global y registrarse en el componente raíz
//app.js
//引入http请求模块
const http=require('./http/index')
//直接在App方法里简单粗暴挂载一个http方法,挂上去就能用
App({
http,
})
cómo utilizar
//哪个文件要发送请求,就在头部引入app.js里面app这个全局对象
const app=getApp()
//使用方法简单粗暴,括号内可以传参数
app.http.banner().then(res=>{
console.log(res)
})
De un vistazo, es básicamente lo mismo que la idea de Vue encapsular axios:
defina por separado la ruta y la función de solicitud, llámela en index.js y monte el método en el objeto global.
En el futuro, solo necesita modificar la ruta de solicitud correspondiente o agregar un nuevo método de solicitud al modificar.