云开发入门第六章,云函数的讲解

简介: 云开发入门第六章,云函数的讲解

6-1,认识云函数


官方文档:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/functions.html

我们先来看下官方给出的云函数简介

其实通俗来讲,云函数也是运行在服务器上的,只不过和我们传统开发语言相比。微信官方为我们提供的傻瓜式的一键部署。也就是说你只需要把心思花在业务逻辑代码的编写上即可。无需关心写好如何部署,无需关心安全问题,无需关心鉴权问题。


我们下面以获取openid为例,来看看云函数,php,Java的实现对比

  • php获取用户openid
  • 如果用php来获取openid必须经历下面几步
  • 1,去小程序后台拿到appid和appSecret
  • 2,请求微信的对应接口
  • 3,获取数据后进行解码
  • 4,购买服务器,配置服务器
  • 5,购买域名,域名备案,配置https
  • 6,部署php代码到服务器
  • 7,小程序端调用php接口

Java获取openid和上面的php步骤一样,也是需要上面7步。而我们用云函数获取openid呢,就只需要简单的3步就行了,代码量也能显著减少


6-1-1,云函数获取openid


用云函数的话,只需要3步

  • 1,编写云函数
  • 2,一键部署云函数
  • 3,调用云函数

来看下云函数代码,只需要10行代码,即可轻松搞定


6-2,云函数的优势


我们用云函数和上一章的云数据库进行下对比

来看下官方文档是如何描述云函数的

  • 云函数属于管理端,在云函数中运行的代码拥有不受限的数据库读写权限和云文件读写权限。需特别注意,云函数运行环境即是管理端,与云函数中的传入的 openId 对应的微信用户是否是小程序的管理员 / 开发者无关。


6-3,云函数调用演示


官方文档:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/functions/Cloud.callFunction.html

6-3-0,初始化云函数的环境

  • 1,创建一个文件夹cloud和pages平行
  • 2,在project.config.json里面配置云函数所在目录为cloud
    在project.config.json里面添加如下配置
    然后点击保存,我们的cloud文件夹前面就有一个云朵
  • 就代表我们云函数初始化成功啦。
  • 新一个云函数
  • 048ecf1df560bb18f51a09a370ef0618.png
  • 如果只创建一个云函数的时候,会出现下面的问题。
  • 730b42f280c14f1c846a47c1dab3a19b.png

解决方案:只需要在cloud文件夹下新建一个空白文件即可。


6-3-1,云函数获取openid


调用云函数有两种写法

  • 1,传统的success和fail
  • 2,用promise写法then和catch

6-3-2,数据的导入和导出

  • 数据导出,做数据备份
    比如导入为json数据如下

83a4704370850de191a54b2218ccdf18.png

数据导入,为了快速的大量的创建一些数据。
为了方便付费用户,我这里提前准备好了108条数据,付费用户直接去下载即可

  • 360868073daa612df1f0b8cddb75f1c2.png

把下载好的这108条数据的json文件,导入到数据库如下


6-3-3,云函数获取数据


注意:云函数只要有变动,就要重新部署,否则云函数不生效。

遇到了一个问题,如下

出现原因:如果你有两个云开发环境,偶尔会出现上图所示的问题。

解决问题:有两种


  • 1,在云函数里指定你要使用那个云开发环境

2,使用DYNAMIC_CURRENT_ENV常量 (提倡使用这个)

4de593f8a6e576a06d3e82f8aa29ec85.png

我们这里会和小程序里直接调用数据库的查询进行下对比

ee44bc1b0ff2f38983bf9a097d53f973.png

daffa092c6d76535b7e527f6c239ffde.png

6-3-4,云函数修数据


本地小程序直接调用数据库修改会有问题

  • 只能修改自己创建的数据,别人创建的数据,就没有办法修改了。
  • 如何解决呢?用云函数来修改就可以解决这个问题啦。
  • 1,先创建云函数update0129
  • 2,调用云函数就行修改

6-3-5,云函数删除数据

  • 1,创建一个删除商品的云函数remove0129
  • 18852a744ff13abea5b63e7818838d91.png
  • 2,调用这个云函数进行删除操作
  • 65c14382420214fcdeded9a5d100f001.png

6-3-6,提交数据到云函数


  • 1,创建云函数,并部署
  • 2,调用云函数

6-4,使用云函数常见问题


6-4-1,云函数里面没有初始化环境变量

解决方案如下:

代码片段


cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV 
})


相关文章
|
运维 Serverless 云计算
云上开发新范式:Serverless 的必然与应然 | 云栖深度对话
云上开发新范式:Serverless 的必然与应然 | 云栖深度对话
|
Swift iOS开发 Perl
如何解决Swift混编的module编译错误
前言很多iOS工程都是基于Object-C开发,再逐步向Swift演进,演进过程中不可避免要进行Swift混编。Swift模块需要支持LLVM Module规范,混编工程会遇到各种Module编译错误。这对于不熟悉的同学来说简直是灾难,严重影响开发效率。本文会介绍常见的Module编译错误,希望对大家有所帮助。常见错误1:Could not build module xxx当一个OC模块引用了Sw
7549 1
如何解决Swift混编的module编译错误
|
设计模式 缓存 Kubernetes
分布式系统架构与云原生—阿里云《云原生架构白皮书》导读
有幸作为阿里云MVP提前获得了阿里云云原生团队编写的《云原生架构白皮书》,希望通过自己对于云原生的理解为开发者提供一篇观后感或者是能够参考的博文
13185 0
分布式系统架构与云原生—阿里云《云原生架构白皮书》导读
|
11月前
|
安全 网络协议 网络安全
【Azure 环境】从网络包中分析出TLS加密套件信息
An TLS 1.2 connection request was received from a remote client application, but non of the cipher suites supported by the client application are supported by the server. The connection request has failed. 从远程客户端应用程序收到 TLS 1.2 连接请求,但服务器不支持客户端应用程序支持的任何密码套件。连接请求失败。
296 2
|
消息中间件 数据采集 中间件
RabbitMQ的使用—实战
RabbitMQ的使用—实战
363 1
|
人工智能 自然语言处理 Serverless
阿里云百炼应用实践系列-让微信公众号成为智能客服
本文主要介绍如何基于阿里云百炼平台快速在10分钟让您的微信公众号(订阅号)变成 AI 智能客服。我们基于阿里云百炼平台的能力,以官方帮助文档为参考,让您的微信公众号(订阅号)成 为AI 智能客服,以便全天候(7x24)回应客户咨询,提升用户体验,介绍了相关技术方案和主要代码,供开发者参考。
965 9
阿里云百炼应用实践系列-让微信公众号成为智能客服
|
运维 Kubernetes 监控
容器服务ASK初评
【8月更文挑战第12天】容器服务ASK初评
486 3
云函数的使用
云函数的使用
438 0
|
XML 设计模式 JavaScript
JVM第三讲:JVM 基础-字节码的增强技术详解
JVM第三讲:JVM 基础-字节码的增强技术详解
373 0
JVM第三讲:JVM 基础-字节码的增强技术详解
|
存储 Java 测试技术
深度优化 | PolarDB-X 基于向量化SIMD指令的探索
本文将介绍PolarDB-X对于向量化SIMD指令的探索和实践,包括基本用法及实现原理,以及在具体算子实现中的思考和沉淀。

热门文章

最新文章