前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >『云函数』传参和调试

『云函数』传参和调试

原创
作者头像
BNTang
修改2024-01-26 00:39:49
2722
修改2024-01-26 00:39:49
举报
文章被收录于专栏:『云开发』『云开发』

1.前言

好了,经过上篇文章的介绍,给大家详细的介绍了云函数的基本使用,以及为什么要使用云函数,那么接下来我们就来看看云函数的传参和调试。

2.云函数的传参

与函数与函数,是一个函数那么就是有参数的,那么我们的云函数是不是也是有参数的,那么我们的云函数的参数是怎么传递的呢?

好,那么继续来看上篇文章我们创建好的云函数,在官方代码中的 main 函数中,我们可以看到有一个 event 参数,这个参数就是我们的云函数的参数,那么我怎么验证我的这个说法呢?

要验证这一点,我首先再重新创建一个云函数,比如说创建一个叫做 sum 的云函数,然后在这个云函数中, 我做一个加法运算,然后将结果返回给客户端,那么这个时候我就需要传递两个参数,一个是 a,一个是 b,那么我怎么传递呢?

先看代码后解释:

代码语言:javascript
复制
// 云函数入口文件
const cloud = require('wx-server-sdk')

// 使用当前云环境
cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV })

// 云函数入口函数
exports.main = async (event, context) => {
  const { num1, num2 } = event;
  const res = num1 + num2;
  return res;
}

关键代码是这一行:

代码语言:javascript
复制
const { num1, num2 } = event;

这一行代码是将 event 对象中的 num1num2 两个属性解构出来,然后赋值给 num1num2 这两个变量,这样就可以直接使用了。

这个代码我就写完,先部署到云端,然后在小程序中调用一下,添加一个新的按钮,点击按钮之后调用这个云函数,然后将结果打印到控制台上,看看结果是不是我们想要的。

代码语言:html
复制
<button type="primary" bindtap="onCloudFnParamTap">云函数传参</button>
代码语言:javascript
复制
async onCloudFnParamTap() {
    const res = await wx.cloud.callFunction({
        name: 'sum',
        // data,可选参数
        data: {
            num1: 20,
            num2: 30
        }
    });

    console.log(res)
}

在查看运行效果之前首先我讲解下这个调用过程,在代码中我通过 wx.cloud.callFunction 方法来调用云函数,这个方法中有一个 name 参数,这个参数就是我们的云函数的名称,然后还有一个 data 参数,这个参数就是我们的云函数的参数,这个参数是一个对象,这个对象中包含了我们的云函数的参数,我现在传递了这个 data,是一个可选参数那么它就会将这个 data 对象传递给 sum 云函数当中的 event 参数里面。

然后我在 sum 的 main 函数中通过解构的方式将 event 对象中的 num1 和 num2 两个属性解构出来,然后再进行加法运算,最后将结果返回给客户端。

运行效果如下:

可以看到,ok 了,所以说,现在是不是我们就可以在使用云函数时就可以传递参数了,现在就没问题了是吧。那么呢还没完,还有一个问题,现在我们编写的云函数运行在什么地方,是不是运行在云端,那么运行在云端,如果我想对这个云函数进行调试,那么我怎么调试呢?

3.云函数的调试

现在我们业务逻辑比较简单,就一些加减法,或者说简单的返回一些数据,这些可能还好,但是如果我们的业务逻辑比较复杂,那么我们的云函数的调试就显得尤为重要了,那么我们怎么调试呢?

例如我在之前的 sum 云函数中,我对 res 进行控制台打印 console.log("云端:" + res);,然后在来看看效果,一定要记住改了代码之后一定要重新部署到云端。

更改了代码之后,并且重新发布之后,在这一次的调用结果中,我发现没有输出 res 的值,云端中并没有打印:

这个时候就不利于我们去调试了,那么如果我想调试该如何调试呢?这个时候就要找到云开发的后台,找到云函数,找到编写的 sum 云函数,这个时候就可以发现在右侧的操作中就有 本地调试云端测试,这个时候先来看云端测试。

3.1.云端测试

点击云端测试按钮,会弹出一个抽屉,在测试模板中可以传递我们的一个参数给 sum:

填写完毕参数之后点击,运行测试,就可以看到本次的结果,但是这个信息还是达不到我的预期想要的样子。

并没有输出我在 sum 中 console.log 的信息,那么这个时候就要使用本地调试了,这个云端测试了解一下就可以了。

3.2.本地调试

重点关注本地调试,点击本地调试,会弹一个对话框点击是,就是安装所需要的依赖库:

然后观察微信小程序的终端就会去下载依赖:

下载完毕之后本地调试界面就成了如下图所示的样子:

这个时候就会浏览器差不多咯,然后我们再次来点击调用云函数传参按钮来看看效果。

微信小程序控制台输出内容:

可以看到已经有一部分日志信息了,但是这还不够还不是我们的预期,那我们来看看本地调试的结果。

本地调试输出内容:

可以看到,这个时候就有我们想要的结果了,那么这个时候关于云函数的传参和调试就介绍完毕了。

本篇文章内容介绍到这就结束了,我们下期再见,感谢大家的观看,谢谢大家。

🐤如果您对本文有任何疑问或想法,请在评论区留言,我将很乐意与您交流。 🐰您的每一条评论对我都至关重要,我会尽快给予回复。 🎈如果您觉得这篇文章对您有所启发或帮助,请不吝赞赏、收藏或分享。 🎁您的每一个动作都是对我创作的最大鼓励和支持。 👍谢谢您的阅读和陪伴! 🍻感谢您的支持,我会继续努力的!

我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.前言
  • 2.云函数的传参
  • 3.云函数的调试
    • 3.1.云端测试
      • 3.2.本地调试
      相关产品与服务
      云函数
      云函数(Serverless Cloud Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码。您只需使用平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。云函数是实时文件处理和数据处理等场景下理想的计算平台。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档