掘金日新计划&小程序云函数

119 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第10天

今天主要介绍云开发中云函数的一些功能,一起来看看吧!

一、引言

云函数即在云端(服务器端)运行的函数。在物理设计上,一个云函数可由多个文件组成,占用一定量的 CPU 内存等计算资源;各云函数完全独立;可分别部署在不同的地区。开发者无需购买、搭建服务器,只需编写函数代码并部署到云端即可在小程序端调用,同时云函数之间也可互相调用。

一个云函数的写法与一个在本地定义的 JavaScript 方法无异,代码运行在云端 Node.js 中。当云函数被小程序端调用时,定义的代码会被放在 Node.js 运行环境中执行。

我们可以如在 Node.js 环境中使用 JavaScript 一样在云函数中进行网络请求等操作,而且我们还可以通过云函数后端 SDK 搭配使用多种服务,比如使用云函数 SDK 中提供的数据库和存储 API 进行数据库和存储的操作,这部分可参考数据库和存储后端 API 文档。

云开发的云函数的独特优势在于与微信登录鉴权的无缝整合 。当小程序端调用云函数时,云函数的传入参数中会被注入小程序端用户的 openid,开发者无需校验 openid 的正确性因为微信已经完成了这部分鉴权,开发者可以直接使用该 openid。

二、云函数创建

在项目根目录找到 project.config.json文件,新增cloudfunctionRoot字段,指定本地已存在的目录作为云开发的本地根目录,代码如下:

{
"cloudfunctionRoot" : "cloudfunctions / "
}

接着,我们在云函数根目录上右键,在右键菜单中,可以选择创建一个新的 Node.js 云函数,我们将该云函数命名为 add。 606e0a8207b9498aaa223ddaabf101d7.png

开发者工具在本地创建出云函数目录和入口 index.js 文件,同时在线上环境中创建出对应的云函数。我们可以看到类似如下的一个云函数模板:

74c0163987994a5cbb1ad498715349b2.png

编写好云函数,需要右键上传并部署,其中代码的意思为将传入a和b相加并作为sum字段返回调用端

注意事项

  • 云函数的传入参数有两个,一个是 event 对象,一个是 context 对象。
  • event指的是触发云函数的事件,当小程序端调用云函数时,event 就是小程序端调用云函数时传入的参数,外加后端自动注入的小程序用户的 openid 和小程序的 appid。
  • context 对象包含了此处调用的调用信息和运行状态,可以用它来了解服务运行的情况。
  • 在模板中也默认 require 了 wx-server-sdk,wx-server-sdk这是一个帮助我们在云函数中操作数据库、存储以及调用其他云函数的微信提供的库

三、云函数的调用

  • 在小程序中调用这个云函数前,我们还需要先将该云函数部署到云端
  • 在云函数目录上右键,在右键菜单中,我们可以将云函数整体打包上传并部署到线上环境中

小程序中调用该云函数代码如下:

wx.cloud . callFunction ( {
//云函数名称
    name : 'add ' ,
//传给云函数的参数
    data : {
    a : 1 ,
    b: 2,
    },
})
.then (res =>{
console.log ( res.result) / / 3
})
.catch (console.error)

烟火向星辰,所愿皆成真!