如何封装微信小程序的数据请求

2023-11-02

如何封装微信小程序的数据请求

1、首先创建一个http文件夹 目录如下在这里插入图片描述
2、在根目录下创建env目录,创建index.js配置并导出多个开发环境
在这里插入图片描述

module.exports={
  //开发环境
  Dev:{
    "BaseUrl":"https://www.develep.com"
  },
  //测试环境
  Test:{
    "BaseUrl":"https://www.test.com"
  },
  //生产环境
  Prod:{
    "BaseUrl": "https://api.douban.com"
  }
}

3、在api.js中统一管理,请求的url地址

module.exports={
  "hot":"/v2/movie/in_theaters",
  "top250": "/v2/movie/top250",
  "detail": "v2/movie/subject"
}

4、在fetch.js中用promise对wx.request()进行封装

//封装 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
      })
    })
}

5、在http.js , 根据当前的环境,设置相应的的baseUrl,引入fetch中封装好的promise请求,
封装基础的get \ post \ put \ upload等请求方法,设置请求体,带上token和异常处理;
设置方法并导出

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

6、在全局app.js中导出http.js注册到根组件

const http=require('./http/http.js')
App({
  http, // http.fetch

})

7、在具体页面导入并且使用

//获取应用实例
const app = getApp();
Page({
  data: {
   list:[]
  }
onLoad: function () {
    app.http.hot().then((res)=>{
                this.setData({
            list: res.data.list
        })    })
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何封装微信小程序的数据请求 的相关文章

随机推荐

  • Partition List

    题目 Given a linked list and a value x partition it such that all nodes less than x come before nodes greater than or equa
  • 关于免费获得WPS会员自动邀请助力的JAVA项目分享

    WPS自动邀请说明 一 基本说明 本项目不是全自动 需要用户每日13点前在微信WPS会员公众号完成在线签到 再完成签到后即可输入自己uid完成自动拉满10人的任务 本项目仅用于学习 不用于商业 二 具体步骤 添加微信公众号WPS会员 福利
  • python编程标准化_Python数据预处理:彻底理解标准化和归一化

    数据预处理 数据中不同特征的量纲可能不一致 数值间的差别可能很大 不进行处理可能会影响到数据分析的结果 因此 需要对数据按照一定比例进行缩放 使之落在一个特定的区域 便于进行综合分析 常用的方法有两种 最大 最小规范化 对原始数据进行线性变
  • go语言基础-----07-----方法

    1 方法的介绍 1 方法的概念 简单说就是一个对象里面的函数 称为方法 2 在go语言中 可以给任意自定义类型 包括内置类型 但不包括指针类型 添加相应的方法 3 方法总是绑定对象实例 并隐式将实例作为第一参数 4 方法的语法 func r
  • 数学建模常用模型简介&其他模型大全汇总

    一 预测与预报 1 灰色预测模型 必掌握 解决预测类型题目 由于属于灰箱模型 一般比赛期间 不优先 使用 满足两个条件可用 数据样本点个数少 6 15 个 数据呈现指数或曲线的形式 2 微分方程预测 高大上 备用 微分方程预测是方程类模型中
  • Python解析JSON数据的基本方法

    一 JSON数据格式介绍 JSON JavaScript Object Notation 是一种轻量级的数据交换格式 JSON建构于两种结构 json是Javascript中的对象和数组中的对象 本质上来讲就是有特定结构的字符串 所以可以通
  • Chrome 浏览器css样式不显示问题解决方法

    在eclipse里改动css 改动后刷新chrome 样式不变问题 但IE浏览器却可更新样式 刚开始以为是浏览器兼容之类的问题 后来发现是chrome会缓存css样式 按F5刷新是没用的 得清除缓存才行 更快捷的方式是按Ctrl F5强制重
  • elasticsearch查询之keyword字段的查询打分控制

    一 数据情况 purchase记录每个用户的购买信息 PUT purchase mappings properties id type keyword name type text goods properties id
  • DiskGenius 数据恢复教程,丢失的学习资料有救了

    DiskGenius 数据硬盘恢复教程 固态SSD 机械HHD 几个t的学习资料有救了 看到这个教程就省下几百块的恢复数据的钱 安排 老营销号了 用完记得点赞关注转发一键三连 文尾附软件 一 DiskGenius 能够恢复数据的前提条件 非
  • 在python中字典和集合都是用一对作为界定符_数据处理和分析Excel/Python答案

    单选题 下面不能创建一个集合的语句是 单选题 回收的问卷调查表中 有一些没有填写的项 处理这种缺失值的办法有多种 需要根据实际情况选择使用 对于一般性的缺失值项 最常用的方法是 单选题 若在单元格A1中输入公式 left 数据分析基础 4
  • android app升级 数据库表改动,android – 在app执行一次后将新表添加到数据库

    我正在 Android中创建一个简单的数据库 我想在代码执行一次后添加新表 现在 每当我尝试在EventDataSqlHelper类中更改我的onCreate 方法时 我的应用程序崩溃了 这可能是因为与SQLiteOpenHelper关联的
  • gateway网关

    这里先简单介绍下getway网关的大体实现 细节不去详述 这一篇也是最后一篇关于微服务的基础介绍 后面的文章中会介绍具体微服务和中间件的设计 编码和实现 项目中加入热部署 由于我们在开发阶段频繁的修改代码 所以在项目中加入热部署以免频繁的启
  • python实现淘宝自动回复_10分钟教你用Python实现微信自动回复功能

    01 前言 效果展示 相信大家都有忙碌的时候 不可能一直守在微信上及时回复消息 但微信又不能像qq一样设置自动回复 无妨 今天 我们就来用python实现微信的自动回复功能吧 并且把接收到的消息统一发送到文件助手里面 方便统一查看 效果如下
  • JS写一个 一个舒适的渐变背景效果

    很久没有写博客了 今天学习看到一个博客网站 停留了一会 被这个效果吸引住了 于是就把这块的代码搬过来了 效果如下 很简单 就是停留一个页面 然后会随机变换背景颜色 下面是效果的GIF图片 实现代码 首先这个背景是全都由 js 生成的 我们只
  • Linux终端无法启动图形界面应用,Could not connect to any X display.

    问题 安装图形桌面后 Linux通过终端命令无法启动图形应用 报错 Could not connect to any X display 或 Gtk WARNING 10 49 06 625 cannot open display 0 等
  • 【Alist】Mac 使用 Docker 部署 Alist 并通过 CloudMounter 本地挂载网盘

    修改记录 添加存储 选择 阿里云盘 官方已经不建议使用 不推荐使用该驱动 因为它不稳定 随时可能被屏蔽 我们会在以后的版本中移除 推荐使用官方API的驱动 Aliyundrive Open 什么是AList AList 是一个支持多种存储
  • 服务器数据恢复-UNIX类文件系统软件层级故障的数据恢复可能性分析

    服务器数据恢复环境 基于UNIX系统 软件层级的数据灾难 服务器故障 1 存储结构出错 2 删除数据 3 文件系统格式化 4 其他原因导致的数据丢失 服务器数据恢复的可能性分析 1 存储结构出错 无论错误出现在RAID还是卷组 分区 片区
  • Vue框架 ---- 组件高级:ref、动态组件,插槽slot和自定义命令

    Vue框架 内容管理 ref引用 使用ref引用DOM元素 使用ref引用组件 实例 控制文本框和按钮的按需转换 this nextTick cb 将cb延迟到DOM更新完 动态组件 keep alive保持组件状态 插槽slot slot
  • Tokitsukaze and Colorful Tree【树状数组+离线+dfs】

    题目链接 HDU 6793 题意 有N个点的树 每个点有颜色和权值 现在有两种操作 要求的是树上的同种颜色的非祖先与子孙节点的两点的异或和 更改某个点权值为v 将某个点的颜色更改为c 于是我们可以这样考虑 现在将所有的颜色离线下来 每次我们
  • 如何封装微信小程序的数据请求

    如何封装微信小程序的数据请求 1 首先创建一个http文件夹 目录如下 2 在根目录下创建env目录 创建index js配置并导出多个开发环境 module exports 开发环境 Dev BaseUrl https www devel