1. Estructura de directorio
Creado en el directorio raíz y http api.js文件
fetch.js
bien http.js文件
;
crear env directorio en el directorio raíz, crear configure index.js y exportar varios entornos de desarrollo
module.exports={
//开发环境
Dev:{
"BaseUrl":"https://www.develep.com"
},
//测试环境
Test:{
"BaseUrl":"https://www.test.com"
},
//生产环境
Prod:{
"BaseUrl": "https://api.douban.com"
}
}
Gestión unificada en api.js, la dirección URL solicitada
module.exports={
"hot":"/v2/movie/in_theaters",
"top250": "/v2/movie/top250",
"detail": "v2/movie/subject"
}
Encapsular wx.request () con promesa en fetch.js
//封装 http
module.exports= (url, path,method, params)=>{
return new Promise((resolve, reject) => {
wx.request({
url: `${
url}/${
path}`,
method:method,
data: Object.assign({
}, params),
header: {
'Content-Type': 'application/text' },
success: resolve,
fail: reject
})
})
}
En http.js, de acuerdo con el entorno actual, establecer el baseUrl correspondiente, presente la solicitud a la promesa encapsulado en buscar, encapsular el get básica \ colocar \ put \ subida y otro petición métodos, ajuste el cuerpo de la petición, llevar el manejo de fichas y excepción, etc .;
conjunto El método correspondiente y la exportación;
const api = require('./api.js')
const config=require('../env/index.js');
const fetch=require('./fetch.js');
let Env='Prod';
let baseUrl = config[Env].BaseUrl;
let key ='?apikey=0b2bdeda43b5688921839c8ecb20399b'
console.log(baseUrl);
console.log(api)
function fetchGet(path,params){
return fetch(baseUrl,path,'get',params);
}
function fetchPost(path,params){
return fetch(baseUrl,path,'post',params);
}
module.exports={
hot(paramas={
}){
return fetchGet(api.hot+key,paramas);
},
top250(params={
}){
return fetchGet(api.top250+key,params);
},
detail(id,params={
}){
return fetchGet(api.detail+`/${
id}`+key,params)
}
}
Importe http en el archivo app.js global y regístrese en el componente raíz.
const http=require('./http/http.js')
// App.config=config[env];
App({
http, // http.fetch
})
Importar y usar en páginas específicas;
//获取应用实例
const app = getApp();
Page({
data: {
list:[]
}
onLoad: function () {
app.http.hot().then((res)=>{
this.setData({
list: res.data.list
}) })
}