1、创建配置文件

// utils/cloudConfig.js
// 云开发环境配置// 当前小程序配置
const currentConfig = {env: "cloudbase-6goxxxxxxd6c75e0", // 当前小程序环境 IDappid: "wxdexxxxx5dbcf04", // 当前小程序 AppID
};// 共享云开发环境配置
const sharedConfig = {resourceAppid: "wx9xxxxxxxx142c", // 资源方小程序 AppIDresourceEnv: "xxve-0gxxxxx521f5", // 资源方环境 ID
};module.exports = {currentConfig,sharedConfig,
};

2、封装请求(云函数为例)

提示:不会用云函数可看之前的文章:

// utils/cloudRequest.js
// 云函数请求封装工具const app = getApp();/*** 调用共享云函数* @param {string} functionName - 云函数名称* @param {object} data - 传递的数据* @returns {Promise} 返回云函数调用结果*/
async function callSharedFunction(functionName, data = {}) {try {// 等待共享云开发环境初始化完成,下一步展示具体内容await app.waitForSharedCloudReady();if (!app.globalData.sharedCloud) {throw new Error("共享云开发环境未初始化");}const result = await app.globalData.sharedCloud.callFunction({name: functionName,data: data,});console.log(`共享云函数 ${functionName} 调用成功:`, result);return result;} catch (error) {console.error(`共享云函数 ${functionName} 调用失败:`, error);// 显示错误提示wx.showToast({title: "获取数据失败",icon: "none",});throw error;}
}/*** 通用数据获取方法* @param {object} data - 配置选项* @param {object} data.gather - 集合名称,必填* @param {object} data.page - 页码,默认1* @param {object} data.pageSize - 每页数量,默认20,pageSize和size二选一* @returns {Promise} 返回数据*/
async function getCloudFunctionData(data = {}) {try {const res = await callSharedFunction("云函数名", data);if (res && res.result) {return res.result;} else {// console.warn(`获取 ${functionName} 数据为空或格式不正确:`, res.result);return {};}} catch (error) {// console.error(`获取 ${functionName} 数据失败:`, error);throw error;}
}module.exports = {callSharedFunction,getCloudFunctionData
};

提示:以下是本篇文章正文内容,下面案例可供参考

3、初始化云开发

// app.js
const { currentConfig, sharedConfig } = require("./utils/cloudConfig");App({onLaunch() {// 初始化当前小程序的云开发环境wx.cloud.init({env: currentConfig.env, // 当前小程序环境 IDappid: currentConfig.appid, // 当前小程序 AppIDtraceUser: true, // 开启用户追踪(可选)});// 初始化共享云开发环境this.initSharedCloud();},// 初始化共享云开发环境async initSharedCloud() {try {// 创建共享云开发实例const sharedCloud = new wx.cloud.Cloud({resourceAppid: sharedConfig.resourceAppid, // 资源方小程序 AppIDresourceEnv: sharedConfig.resourceEnv, // 资源方环境 ID});// 初始化共享云开发环境await sharedCloud.init();// 将共享云开发实例保存到全局数据中this.globalData.sharedCloud = sharedCloud;this.globalData.sharedCloudReady = true; // 标记初始化完成console.log("共享云开发环境初始化成功");// 触发初始化完成事件this.triggerSharedCloudReady();} catch (error) {console.error("共享云开发环境初始化失败:", error);this.globalData.sharedCloudReady = false;}},// 触发共享云开发环境初始化完成事件triggerSharedCloudReady() {if (this.globalData.sharedCloudReadyCallbacks &&this.globalData.sharedCloudReadyCallbacks.length > 0) {this.globalData.sharedCloudReadyCallbacks.forEach((callback) => {try {callback();} catch (error) {console.error("执行共享云开发环境就绪回调失败:", error);}});this.globalData.sharedCloudReadyCallbacks = [];}},// 等待共享云开发环境初始化完成waitForSharedCloudReady() {return new Promise((resolve, reject) => {if (this.globalData.sharedCloudReady) {resolve();} else {// 添加回调到队列if (!this.globalData.sharedCloudReadyCallbacks) {this.globalData.sharedCloudReadyCallbacks = [];}this.globalData.sharedCloudReadyCallbacks.push(resolve);// 设置超时setTimeout(() => {reject(new Error("共享云开发环境初始化超时"));}, 10000); // 10秒超时}});},globalData: {sharedCloud: null,sharedCloudReady: false, // 共享云开发环境是否初始化完成sharedCloudReadyCallbacks: [], // 等待初始化的回调队列},
});

4、使用

// index.js
const { getCloudFunctionData } = require("../../utils/cloudRequest.js");Page({/*** 页面的初始数据*/data: {},// 共享数据async getTopicList() {try {const res = await getCloudFunctionData({ gather: "你的集合名" });console.log(res);} catch (err) {console.log(err);}},/*** 生命周期函数--监听页面加载*/onLoad(options) {this.getTopicList();},
});

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

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

相关文章

SpringBoot+ShardingSphere-分库分表教程(一)

日常使用数据库的时候,更多的时间是在关心业务功能的实现,为了尽快完成新版本的发布上线,通常在项目初期不太会去在意数据库的压力和性能问题。在服务上线一段时间之后,就会发现当初设计存在着很多的不足,这都是项目研…

INA226 电流计 功率计电路图转PCB制作

上次发布了TI的INA226电路图,今天抽了点时间,把电路图生成了PCB。 帖出来,不足之处,请兄弟们留言指正。 没什么问题就可以去嘉立创白嫖了。^_^

Vcpkg 经典模式完整迁移方案

🚀 从零开始:高效使用 Vcpkg 安装 Qt WebEngine(经典模式 缓存优化 性能释放) 🧩 背景简介 在使用 Vcpkg 安装 Qt 系列库时,特别是庞大的 qtwebengine 模块,编译量极大,耗时可达…

FPGA产品

FPGA产品 文章目录 FPGA产品1. Xilinx公司FPGA产品2. Altera公司FPGA产品3. FPGA产品的工业等级简介4. FPGA产品的速度等级简介总结 1. Xilinx公司FPGA产品 Xilinx公司是FPGA芯片的发明者,因此是一家骨灰级的老牌FPGA公司,同时也是目前最大的可编程逻辑…

205-06-26 Python深度学习1——安装Anaconda与PyTorch库(Win11+WSL2+Ubuntu24.04版)

文章目录 1 安装 wsl1.1 开启 Windows 支持1.2 安装 wsl1.3 移动 wsl 至其他盘1.4 其他事项 2 安装 Anaconda3 安装 Python 环境3.1 创建 Conda 环境3.2 安装 Pytorch 库(gpu) 4 安装 Pycharm4.1 Toolbox App 安装4.2 安装 Pycharm4.3 配置 Pycharm 5 测…

Redis 数据迁移同步:应对大 Key 同步挑战

在企业级的数据同步和迁移场景中,Redis 凭借高性能和灵活的数据结构,常被用于缓存和高频读写场景。随着业务数据的积累,Redis 中不可避免会出现包含大量元素的“大 Key”,如包含几十万条数据的 List、Set 或 Hash 类型。在进行全量…

视频关键帧提取

🎞️ 视频关键帧提取与特征分析指南 📌 抽帧数量建议 视频时长推荐抽帧数原因短视频(≤15秒)3~5 帧覆盖不同场景即可中长视频(1~3分钟)5~10 帧内容跨度大长视频&#xf…

协作机器人优化自动化工作流程,提升工作效率

无损检测(NDT)是一种检查方法,用于识别材料中的裂纹或缺陷,或者在不损坏材料的情况下确定材料的元素组成。Olympus拥有多种NDT设备,这些设备具有多种多样的测量功能,允许最终用户对各种行业中使用的金属、塑料、陶瓷和复合材料进行…

复用对象Aspose.Words 中 DocumentBuilder 的状态管理解析

doc manager.LoadDocument(filePath) builder.Document doc 是不是builder就自动清空重建了,不需要清理builder Aspose.Words 中 DocumentBuilder 的状态管理解析 在您的代码中,builder.Document doc 这行代码不会自动清空或重建DocumentBuilder的状态。Docume…

(LeetCode 面试经典 150 题 ) 134. 加油站 (贪心)

题目&#xff1a;134. 加油站 思路&#xff1a;贪心&#xff0c;时间复杂度0(n)。 当前点i来到下一个点i1,那么油的变化量是gas[i]-cost[i]。 先统计遍历完所有点后&#xff0c;油的变化量sum。如果sum<0&#xff0c;说明不可能绕行一周&#xff1b;sum>0&#xff0c;说…

Java 线程池总结

一、写在前面 参考阿里开发规约,创建线程池一般用ThreadPoolExecutor 在高并发程序中&#xff0c;频繁创建与销毁线程是一种极其低效且不可控的行为。为了解决这个问题&#xff0c;Java 提供了线程池&#xff08;ThreadPoolExecutor&#xff09;这一强大的并发框架。它不仅提…

【3.3】Pod详解——容器探针部署第一个pod

文章目录 容器探针小知识-控制平面Pod实战声明式模型&命令模式 部署第一个pod编写pod清单文件kubectl命令将清单文件post到api-server验证pod删除pod 容器探针 上面已经讲到容器状态,那么这些容器的状态是怎么检测到的呢?实际上在pod中有三种探针&#xff0c;存活探针(li…

Insar 相位展开真实的数据集的生成与下载(随机矩阵放大,zernike 仿真包裹相位)

1.真实的数据集下载: Delta-X: UAVSAR L1B Interferometric Products, MRD, Louisiana, 2021 | NASA Earthdata 注意下载的时候需要注册登录一下哦 2. 适用于 深度学习训练的数据集 通过网盘分享的文件:InSAR-DLPU.rar 链接: https://pan.baidu.com/s/1CRWAuNYwCHP_iqCeIhf…

C++ 多线程深度解析:掌握并行编程的艺术与实践

在现代软件开发中&#xff0c;多线程&#xff08;multithreading&#xff09;已不再是可选项&#xff0c;而是提升应用程序性能、响应速度和资源利用率的核心技术。随着多核处理器的普及&#xff0c;如何让代码有效地利用这些硬件资源&#xff0c;成为每个 C 开发者必须掌握的技…

(线性代数)矩阵的奇异值Singular Value

矩阵的奇异值是矩阵分析中一个非常重要的概念&#xff0c;尤其是在数值线性代数、数据降维&#xff08;如PCA&#xff09;、图像处理等领域有着广泛应用。奇异值分解&#xff08;SVD, Singular Value Decomposition&#xff09;是一种强大的工具&#xff0c;可以将任意形状的矩…

数据结构复习4

第四章 串 一些面试题 12. 介绍一下KMP算法。★★★ KMP算法是一种高效的字符串匹配算法&#xff0c;用于在一个文本串中查找一个模式串的出现位置。KMP算法通过利用模式串自身的信息&#xff0c;在匹配过程中避免不必要的回溯&#xff0c;从而提高匹配效率。 KMP算法的核心思…

【八股消消乐】消息队列优化—消息有序

&#x1f60a;你好&#xff0c;我是小航&#xff0c;一个正在变秃、变强的文艺倾年。 &#x1f514;本专栏《八股消消乐》旨在记录个人所背的八股文&#xff0c;包括Java/Go开发、Vue开发、系统架构、大模型开发、具身智能、机器学习、深度学习、力扣算法等相关知识点&#xff…

2D写实交互数字人如何重塑服务体验?

在数字化浪潮席卷全球的当下&#xff0c;人机交互模式正经历着前所未有的变革。从早期的文本命令行界面&#xff0c;到图形用户界面&#xff08;GUI&#xff09;的普及&#xff0c;再到如今语音交互、手势识别等多模态交互技术的兴起&#xff0c;我们与机器之间的沟通方式愈发自…

CI/CD GitHub Actions配置流程

腾讯云服务器宝塔FinalShellgithup 1.在云服务器上创建SSH秘钥对&#xff0c;下载秘钥到本地 2.在服务器中绑定秘钥对&#xff08;绑定后&#xff0c;服务器不能将不允许密码登录&#xff09;绑定前先关机服务器&#xff0c;绑定后再开启服务器 3.FinalShell改为公钥登录&am…

液态交互效果网页开发--源自鸿蒙5以及iOS26的灵感

首先先来看看最终展示效果 当鼠标靠近“开始探索”的按钮的时候&#xff0c;按钮放大并有微弱光效 鼠标靠近之前会给视窗添加一层接近背景的朦胧感&#xff0c;当鼠标放在视窗上朦胧感消失 技术不复杂&#xff0c;这个网页主要是使用了以下关键技术&#xff1a; HTML5 语义化标…