微信小程序网络请求封装API集中管理

common/api目录下创建两个js文件 { apiList.js,api.js }

API列表 

// common/api/apiList.js
const BASE_URL = 'https://api.example.com'; // 定义 API 的基础域名const apiList = {getData: BASE_URL + '/data',postData: BASE_URL + '/postData',// 其他接口路径...
};module.exports = apiList;

请求封装

// common/api/api.js
const apiList = require('./apiList.js');const request = (url, method, data) => {return new Promise((resolve, reject) => {wx.request({url: apiList[url], // 使用apiList中的接口路径method: method,data: data,header: {'content-type': 'application/json'},success(res) {resolve(res.data);},fail(err) {reject(err);}})})
}module.exports = {request: request
};

 使用

// 在需要发送请求的页面或组件中引入api.js
const api = require('../../common/api/api.js');// 使用封装的请求函数,传入对应的apiList中的接口名称即可
api.request('getData', 'GET', { key: value }).then(res => {console.log(res);// 请求成功的处理逻辑
}).catch(err => {console.log(err);// 请求失败的处理逻辑
});

 封装完毕 !

每次发起请求时带上 Code

const apiList = require('./apiList.js');// 定义一个函数来获取用户的code
const getUserCode = () => {return new Promise((resolve, reject) => {wx.login({success: function (res) {if (res.code) {resolve(res.code);} else {reject('获取用户code失败');}},fail: function (err) {reject(err);}});});
};// 修改网络请求函数,在调用时获取用户的code并携带在请求的header中
const request = (url, method, data) => {return getUserCode().then(code => {return new Promise((resolve, reject) => {wx.request({url: apiList[url], // 使用apiList中的接口路径method: method,data: data,header: {'content-type': 'application/json','X-WX-Code': code  // 将code添加到请求的header中},success(res) {resolve(res.data);},fail(err) {reject(err);}})});});
};module.exports = {request: request
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/765057.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式学习41-数据结构2

今天学习了链表的增删改查 (暂定!!后续再补内容) 高内聚 :一个函数只实现一个功能 …

Docker 镜像仓库

目录 1、搭建私有 registry 服务端创建镜像仓库 客户端推送镜像 镜像导入导出 2、Nginx 代理 registry 仓库 SSL 证书 & https 协议 SSL证书 https协议 SSL 的验证流程 客户端安装 Nginx 使用 openssl 生成CA根证书和根证书key 创建 Nginx 服务证书 配置启动 N…

Airgorah:一款功能强大的WiFi安全审计工具

关于Airgorah Airgorah是一款功能强大的WiFi安全审计工具,该工具可以轻松发现和识别连接到无线接入点的客户端,并对特定的客户端执行身份验证攻击测试,捕捉WPA握手包,并尝试破解接入点的密码。在该工具的帮助下,广大研…

moba客户端开发面经

1、 Lua:元表是什么,怎么实现对象继承 2、OPP是什么 3、mvc结构 4、C#: list和array区别和使用场景 5、项目: (1)ui框架类设计,ui层级管理怎么做,对象初始化内存占用这样做高,资源是…

什么是TCP粘包/拆包?发生的原因?

一个完整的业务可能会被TCP拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包发送,这个就是TCP的拆包和粘包问题。 原因 1、应用程序写入数据的字节大小大于套接字发送缓冲区的大小. 2、进行MSS大小的TCP分段。( MSSTCP报文段长度-TCP首…

Milvus 向量数据库:如何基于docker-compose在本地快速搭建测试环境

文章目录 1. 安装 milvus1.1. milvus v2.3.12版本信息1.2. 安装milvus步骤1.3. 安装管理工具Attu1.4. 将Attu由docker-compose启动参考Milvus 向量数据库专为向量查询与检索设计,能够为万亿级向量数据建立索引,详见介绍请参见: milvus: 专为向量查询与检索设计的向量数据库 …

在Ubuntu上使用Script命令捕获命令与其输出

在Ubuntu上使用Script命令捕获命令与其输出 起初,是为了记录软件的安装过程,就在想有没有简单高效的记录方法,之后就找到了script命令。 使用 script命令,可以很容易地记录下你在终端里所有的操作与输出,非常适合用来…

Sql Server小技能:row_number()函数

文章目录 引言I Sql Server: 使用row_number()函数进行编号1.1 获取出每个分组中薪资最高的员工信息1.2 获取最新船舶位置(定位)1.3 获取一个星期内离线信息II 相关表结构2.1 港区2.2 警报2.3 用户表2.4 用户权限III DBCC CHECKIDENT 标识更正see also引言 I Sql Server: …

是时候来唠一唠synchronized关键字了,Java多线程的必问考点!

写在开头 在之前的博文中,我们介绍了volatile关键字,Java中的锁以及锁的分类,今天我们花5分钟时间,一起学习一下另一个关键字:synchronized。 synchronized是什么? 首先synchronized是Java中的一个关键字…

【每日算法】理论:图像分割相关 刷题:设计链表

上期文章 【每日算法】理论:AIGC微调技术 刷题:滑动窗口、循环 文章目录 上期文章一、上期问题二、理论问题1、变形自注意力模块的特别之处2、GroundingDino模型的损失函数是什么?3、Dice Loss4、UNet的网络架构5、VQVAE模型相对于VAE的改进…

Tensorflow 2.0 常见函数用法(一)

文章目录 0. 基础用法1. tf.cast2. tf.keras.layers.Dense3. tf.variable_scope4. tf.squeeze5. tf.math.multiply 0. 基础用法 Tensorflow 的用法不定期更新遇到的一些用法,之前已经包含了基础用法参考这里 ,具体包含如下图的方法: 本文介…

dbscan算法实现鸢尾花聚类(python实现)

DBscan算法原理 : dbscan算法-CSDN博客 法一(调库) : 直接调库 : import numpy as np import matplotlib.pyplot as plt from sklearn import datasets from sklearn.cluster import DBSCAN from sklearn.decomposition import PCA from sklearn.discriminant_analysis …

leetcode 225.用队列实现栈 JAVA

题目 思路 1.一种是用双端队列(Deque),直接就可以调用很多现成的方法,非常方便。 2.另一种是用普通的队列(Queue),要实现栈的先入后出,可以将最后一个元素的前面所有元素出队,然后…

【NLP11-迁移学习】

1、了解迁移学习中的有关概念 1.1、预训练模型(pretrained model) 一般情况下预训练模型都是大型模型,具备复杂的网络结构,众多的参数量,以及在足够大的数据集下进行训练而产生的模型。在NLP领域,预训练模型往往是语…

数据库(黑马)

数据库 use test2; show tables; create table student2(id int,name varchar(10),sex varchar(10) ); ALTER TABLE student ADD sex int; INSERT INTO student (sex) VALUES (1); insert into student(id) values(1),(2),(3); insert into student2 values(4,呆呆1,19),(5,…

Python 的闭包,你知道多少? 快来测测吧

在Python中,闭包是一种强大且神奇的概念,它让函数不仅可以执行操作,还可以携带状态和环境。通过闭包,我们可以创建灵活而高效的函数,实现更加复杂的逻辑和设计模式。本文将深入探讨Python中闭包的原理和应用&#xff0…

【Flask】Flask项目结构初识

1.前提准备 Python版本 # python 3.8.0 # 查看Python版本 python --version 安装第三方 Flask pip install flask # 如果安装失败,可以使用 -i,指定使用国内镜像源 # 清华镜像源:https://pypi.tuna.tsinghua.edu.cn/simple/ 检查 Flask 是…

SCI一区 | Matlab实现PSO-TCN-BiGRU-Attention粒子群算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测

SCI一区 | Matlab实现PSO-TCN-BiGRU-Attention粒子群算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测 目录 SCI一区 | Matlab实现PSO-TCN-BiGRU-Attention粒子群算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测预测效果基本介绍模型描述…

Qt如何直接处理系统事件(比如鼠标事件),而不是post事件

#include <QtGui/5.15.2/QtGui/qpa/qwindowsysteminterface.h> // 方便调试事件 QWindowSystemInterface::setSynchronousWindowSystemEvents(true); 直接再 qWindowsWndProc函数中处理 通常情况: 事件被放到一个队列中

基于springboot+vue+Mysql的垃圾分类网站

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…