美文网首页
微信小程序云函数

微信小程序云函数

作者: DreamsZero | 来源:发表于2021-11-30 16:58 被阅读0次

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

一个云函数的写法与一个在本地定义的 JavaScript 方法无异,代码运行在云端 Node.js 中。当云函数被小程序端调用时,定义的代码会被放在 Node.js 运行环境中执行。我们可以如在 Node.js 环境中使用 JavaScript 一样在云函数中进行网络请求等操作,而且我们还可以通过云函数后端 SDK 搭配使用多种服务,比如使用云函数 SDK 中提供的数据库和存储 API 进行数据库和存储的操作,这部分可参考数据库和存储后端 API 文档。

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

### 我的第一个云函数

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

1. 在项目根目录找到 project.config.json 文件,新增 cloudfunctionRoot 字段,指定本地已存在的目录作为云开发的本地根目录。</br>

   示例

   ```json

   {

      "cloudfunctionRoot": "cloudfunctions/"

   }

   ```

   完成指定之后,云开发根目录的图标会变成 “云开发图标”,云函数根目录下的第一级目录(云函数目录)是与云函数名字相同的,如果对应的线上环境存在该云函数,则我们会用一个特殊的 “云图标” 标明

2. 接着,我们在云函数根目录上右键,在右键菜单中,可以选择创建一个新的 Node.js 云函数,我们将该云函数命名为 add。开发者工具在本地创建出云函数目录和入口 index.js 文件,同时在线上环境中创建出对应的云函数。我们可以看到类似如下的一个云函数模板:

   示例

```javascript

   // 云函数入口文件

   const cloud = require('wx-server-sdk')

   cloud.init()

   // 云函数入口函数

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

     const wxContext = cloud.getWXContext()

     return {

       event,

       openid: wxContext.OPENID,

       appid: wxContext.APPID,

       unionid: wxContext.UNIONID,

     }

   }

```

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

我们修改一下模板的返回值:</br>

示例

```javascript

// ...

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

  // ...

  return {

    sum: event.a + event.b

  }

}

```

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

部署完成后,我们可以在小程序中调用该云函数:

```javascript

wx.cloud.callFunction({

  // 云函数名称

  name: 'add',

  // 传给云函数的参数

  data: {

    a: 1,

    b: 2,

  },

  success: function(res) {

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

  },

  fail: console.error

})

```

当然,Promise 风格的调用也是支持的:

```javascript

wx.cloud.callFunction({

  // 云函数名称

  name: 'add',

  // 传给云函数的参数

  data: {

    a: 1,

    b: 2,

  },

})

.then(res => {

  console.log(res.result) // 3

})

.catch(console.error)

```

### 注意事项

>不要将cloudfunctionRoot的值设为工作文件夹,将文件夹设置为云函数文件夹,文件夹会变成云环境,即在代码打包和上传的时候会忽略云函数文件夹。

工作文件夹设置为云函数文件夹报错截图

相关文章

  • 微信小程序开发——学习笔记(三)

    微信小程序云开发——云函数 云函数介绍 云函数定义:运行在(腾讯云)上的程序,将需要的函数部署在云开发平台上,即可...

  • 微信小程序云开发支付

    微信小程序的云开发支付先看下微信官方给出的流程图: 这张图里,开发者只需要关注的是小程序和云函数端即可;云函数做了...

  • 微信小程序通过云函数进行微信支付

    微信小程序微信支付 官方流程图如下: 微信小程序微信支付官方流程图链接 我简化的流程: 本地发起下单请求调用云函数...

  • 微信小程序与云开发

    微信小程序基础概念 小程序云开发的三大基础能力:云数据库、云函数、云存储 Java、NodeJS、JavaScri...

  • 微信小程序云函数

    >定义:云函数即在云端(服务器端)运行的函数。在物理设计上,一个云函数可由多个文件组成,占用一定量的CPU内存等计...

  • Error: errCode: -404011 cloud fu

    微信小程序调用云函数时报错:Error: errCode: -404011 cloud function exec...

  • 基于echart实现动态加载微信云平台数据库的数据

    微信小程序的云开发平台提供了三个基础能力:数据库、存储和云函数。我们这次利用微信小程序的云平台数据库的数据,通过e...

  • 小程序发送短信验证码完整工具

    第一家提供小程序发送短信sdk的平台,支持小程序前端发送、云函数、带路由的云函数,以及60秒倒计时插件。 微信小程...

  • 微信小程序 云开发-4

    微信小程序 云开发 -- 云函数查看项目根目录下 project.config.json 文件,是否存在clou...

  • 微信小程序使用云函数

    第一步使用自己微信小程序的appid开通云服务 免费和收费二种 设置好自己的环境,如果用原生就直接上传部署就可以了...

网友评论

      本文标题:微信小程序云函数

      本文链接:https://www.haomeiwen.com/subject/hmnaxftx.html