Encapsular el proceso de solicitud de datos del applet WeChat

1. Estructura de directorio

Creado en el directorio raíz y http api.js文件 fetch.jsbien http.js文件;
Inserte la descripción de la imagen aquí
crear env directorio en el directorio raíz, crear configure index.js y exportar varios entornos de desarrollo
Inserte la descripción de la imagen aquí

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
        })    })
}


Supongo que te gusta

Origin blog.csdn.net/zxlong020/article/details/108853471
Recomendado
Clasificación