《微信小程序开发从入门到实战》学习四十五

4.4 云函数

云函数是开发者提前定义好的、保存在云端并且将在云端运行的JS函数。

开发者先定义好云函数,再使用微信开发工具将云函数上传到云空间,在云开发控制台中可看到已经上传的云函数。

云函数运行在云端Node.js环境中。

小程序端通过wx.cloud.callFunction方法调用云函数,让云函数在云端运行,云函数最终可以返回到小程序端。

云函数之间互相调用,需要使用服务端API的callFunction方法。

4.4.1 云函数简介

以一个将两个数字相加的函数作为第一个云函数作为示例。

首先,点击pages文件夹,点击右键,点击“在资源管理器中显示”,在打开页面新建文件夹“cloudFunctions”

然后在project.config.json文件新增一个字段,指定cloudFunctions目录为云函数在项目中的目录。代码如下:

{

  "cloudfunctionRoot": "cloudFunctions/"

}

保存以后,cloudFunctions目录图标发生变化,表明这是一个云函数的目录。

右击cloudFunctions目录,选择“新建Node.js云函数”,并将该函数命名为add,

微信开发工具自动创建出同名目录,以及目录中两个文件index.js和package.json。

index.js是add函数的入口文件。package.json是Node.js中的模块描述文件,其内容是一个JSON对象,指定了模块名字、版本、描述等信息。JSON对象的dependencies属性指定了该模块所依赖的其他模块的名字和版本。在云函数可以用npm引入第三方依赖来帮助更快开发。

所有云函数中会默认引入wx-server-sdk的依赖,版本后为latest。在index.js文件中,第一行表示在云函数中引入这个依赖模块的引用对象。其代码如下:

const cloud = require('wx-server-sdk') // cloud对象对应着小程序的wx.cloud对象

服务端API都封装在cloud对象。

在服务端可以通过cloud.init方法实现初始化。代码如下:

cloud.init() // 使用云能力前需要先执行初始化方法

接下来观察云函数的入口函数:

// 云函数入口函数

exports.main = async (event, context) => {

// cloud function body

}

这是箭头函数,async表示这是一个异步函数。event和context是函数的两个参数,大括号是函数的内容。在函数前面加上exports.main=,表示这个函数是这个模块的入口函数。

event指的是触发云函数的事件对象,其中包含小程序端调用云函数时传入的参数,而context对象则包含云函数的调用信息和运行状态,可以用它了解服运行情况。

现在修改云函数,将传入的a和b相加,并作为sum字段返回给调用端,代码如下:

exports.main = async (event, context) => {

const c = event.a + event.b

  return {

    sum: c

  }

}

保存后,需要将这个云函数部署到云端。在云函数魔力add上右击,在右键菜单中,选择“上传并部署:云端安装依赖 ( 不上传node_modules) ”,将云函数上传并部署到线上环境中。

这时,在云开发控制台中的云函数管理页面可以看到刚刚上传的云函数,如下图所示:

部署完成后在小程序使用wx.cloud.callFunction方法调用该云函数。代码如下:

 //  回调风格

 wx.cloud.callFunction({

      name: 'add', // 云函数名称

      data : {

        a: 1,

        b: 2

      },

      success: function(res){

        console.log(res.result) // sum: 3

      },

      fail: function(error){// handle error

      }

    })

// Promise风格

    wx.cloud.callFunction({

      name: 'add', // 云函数名称

      data : {

        a: 55,

        b: 2

      }

    }).then(res => {

      console.log(res.result) // sum: 

    }).catch(error => {// handle error

    })

(实践的时候发现,云函数的任何修改,都不是实时的,都需要点击add上传并部署,调用才能得到正确的结果)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Python】Numpy库近50个常用函数详解和示例,可作为工具手册使用

本文以yolo系列代码为基础,在其中查找用到的numpy函数,包含近50个函数,本文花费多天,三万多字,通过丰富的函数原理和示例对这些函数进行详解。以帮助大家理解和使用。 目录 np.array()运行示例 np.asarray()函数解析运…

【网络】简单聊一下 TIME_WAIT

问题背景 笔者在看自己服务状态数据的时候,会发现有很多 tcp 的连接,也会发现有很多处于不同状态下的 tcp 连接,TIME_WAIT 的连接数有83个,为了弄清楚这个 TIME_WAIT 是什么,整理了下面的笔记用于梳理概念 基础流程…

RPC基础

RPC基础知识 RPC 是什么? RPC(Remote Procedure Call) 即远程过程调用,通过名字我们就能看出 RPC 关注的是远程调用而非本地调用。 为什么要 RPC ? 因为,两个不同的服务器上的服务提供的方法不在一个内存空间&…

使用 Tailwind CSS 完成导航栏效果

使用 Tailwind CSS 完成导航栏效果 本文将向您介绍如何使用 Tailwind CSS 创建一个漂亮的导航栏。通过逐步演示和示例代码,您将学习如何使用 Tailwind CSS 的类来设计和定制导航栏的样式。 准备工作 在开始之前,请确保已经安装了 Tailwind CSS。如果没…

聚观早报 |华为畅享 70正式开售;梦饷科技双12玩法

【聚观365】12月8日消息 华为畅享 70正式开售 梦饷科技双12玩法 华为Mate X5应对火海挑战 谷歌发布AI模型Gemini 字节跳动开启新一轮回购 华为畅享 70正式开售 精致外观与创新科技兼具的华为畅享 70正式开售,1199元起搭载6000mAh超大电池,带来超强…

ModStartBlog v8.7.0 LayUI全新升级,文件顺序选择

ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发。 系统完全开源,基于 Apache 2.0 开源协议。 功能特性 丰富的模块市场,后台一键快速安装 …

酿酒生产废水处理的设备需要哪些

酿酒生产废水处理的设备需要以下几种: 1. 格栅:用于去除废水中较大的漂浮物,如酒糟和塑料袋等。 2. 沉淀池或澄清器:进一步去除废水中更小的悬浮物和颗粒物,同时使有机物进行厌氧分解。 3. 过滤器和活性炭吸附装置&…

在阿里云国际上构建共享虚拟主机业务

我们需要3个ECS实例,1个RDS MySQL实例和2个域名。我将使用该域作为我的主域和辅助域。sarathy.infosarathy.site 以下架构图左侧所示的两个 ECS 实例将托管我们的主网站。一个ECS实例用于部署WHMCS,另一个实例用于部署WordPress。WordPress 和 WHMCS 都…

HarmonyOS应用程序框架——UIAbility实操

UIAbility概述 UIAbility是一种包含用户界面的应用组件,主要用于和用户进行交互。UIAbility也是系统调度的单元,为应用提供窗口在其中绘制界面。 每一个UIAbility实例,都对应于一个最近任务列表中的任务。 一个应用可以有一个UIAbility&…

12.Mysql 多表数据横向合并和纵向合并

Mysql 函数参考和扩展&#xff1a;Mysql 常用函数和基础查询、 Mysql 官网 Mysql 语法执行顺序如下&#xff0c;一定要清楚&#xff01;&#xff01;&#xff01;运算符相关&#xff0c;可前往 Mysql 基础语法和执行顺序扩展。 (8) select (9) distinct (11)<columns_name…

poe与chatgpt那个功能更强大

在当前的人工智能领域&#xff0c;Poe Al Chat以其卓越的聊天能力和实用的功能&#xff0c;受到了大家的广泛关注和喜爱。本文好为您个绍Poe Al Chat的功能&#xff0c;以及我们国内用户如何进行充值订阅。Poe Al Chat是一个基于OpenAl的GPT模型开发的人工智能聊天工具。它能够…

有限空间作业中毒窒息事故频发,汉威科技创新方案护航

工贸企业有限空间是我国重大事故多发频发的重点领域之一&#xff0c;安全问题形势严峻。 有限空间是指封闭或者部分封闭、未被设计为固定工作场所&#xff0c;人员可以进入&#xff0c;通风不良&#xff0c;易造成有毒有害物质、易燃易爆气体积聚或者氧含量不足的空间&#xf…

IBM Qiskit量子机器学习速成(四)

量子核机器学习 一般步骤 量子核机器学习的一般步骤如下 定义量子核 我们使用FidelityQuantumKernel类创建量子核&#xff0c;该类需要传入两个参数&#xff1a;特征映射和忠诚度(fidelity)。如果我们不传入忠诚度&#xff0c;该类会自动创建一个忠诚度。 注意各个类所属的…

硕士毕业论文格式修改要点_word

目录 0、最开始要做的事情1、更改样式&#xff08;先善器&#xff09;2、多级标题&#xff08;解决自动更新问题必要的基础设置&#xff09;2、插入图片&#xff08;1&#xff09;设置一个图片样式——“无间隔”&#xff08;2&#xff09;插入题注&#xff08;3&#xff09;修…

上网监控软件——安全与隐私的平衡

网络已经成为人们生活和工作中不可或缺的一部分。然而&#xff0c;随着网络使用的普及&#xff0c;网络安全问题也日益突出。上网监控软件作为网络安全领域的一个重要组成部分&#xff0c;在保护企业和家庭网络安全方面发挥着重要作用。 本文将探讨上网监控软件的背景、功能、优…

泽攸科技桌面型扫描电子显微镜(SEM)技术解析

台式扫描电子显微镜是一种利用电子束扫描样品表面并检测样品反射或发射的电子信号&#xff0c;从而获得样品表面形貌、结构和成分信息的仪器。它的工作原理是由电子枪发出的电子束经过栅极静电聚焦后成为直径50微米的点光源&#xff0c;然后在加速电压作用下&#xff0c;经两三…

普源示波器旋钮数值乱跳, 不更换编码器修复的办法

1: 换电容的办法 直接三个引脚(A/C/B)&#xff0c;A和B&#xff0c;B和C之间并联103电容(10nf),0805封装的焊上正好 2:换编码器 换EC12编码器,柄长15mm,金属柄D口 红框大钮用这个 绿框小钮用这个

案例062:基于微信小程序的健身房私教预约系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

ModuleNotFoundError: No module named ‘dlib‘

解决&#xff1a;ModuleNotFoundError: No module named ‘dlib’ 文章目录 解决&#xff1a;ModuleNotFoundError: No module named dlib背景报错问题报错翻译报错位置代码报错原因解决方法方法一&#xff0c;直接安装方法二&#xff0c;手动下载安装方法三&#xff0c;编译安…

二叉树的层序遍历[中等]

优质博文&#xff1a;IT-BLOG-CN 一、题目 给你二叉树的根节点root&#xff0c;返回其节点值的 层序遍历 。&#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;[[3],…
最新文章