《五天玩转EMAS Serverless》——第四节 实战:小程序疫苗预约-云函数【下】

简介: 本文整理自EMAS Serverless讲师雨鸦,在《5天玩转EMAS Serverless训练营》的分享。本篇内容主要分为五个部分:1.云函数开发介绍2.实战:业务逻辑设计3.实战:业务逻辑实现4.实战:集成测试5.课程总结

接上篇:

https://developer.aliyun.com/article/1224123?spm=a2c6h.13148508.setting.24.4f394f0em1x0Jq

三、 实战:业务逻辑实现

image.png

接下来,我们进行实际的代码设计环节。

 

以登录及注册行为为例,上图展示了用户注册及登陆云函数的相关代码。对于登录的逻辑,我们在云数据库的user表中,查找userId,并返回携带数据库中的id信息。通过投影操作,进行过滤。查询成功后,如果有效文档affectedDocs大于零,则说明用户已经存在,此次请求为登录逻辑,我们将用户信息作为result返回。否则,此次请求为注册逻辑,我们在库中插入一条新注册的用户,以空字符串作为新注册状态。插入成功后,小程序会直接返回该信息。如果插入失败,则返回异常对象。

image.png

对于疫苗预约的代码设计,除了标准的数据库增删改成行为,这个环节还会存在很多异常行为,比如用户不存在疫苗不存在接种点不存在重复预约疫苗数量不足等等。我们需要充分考虑各个场景的边界,进行异常行为的捕获和处理。相关代码,如上图所示。


 四、 实战:集成测试

image.png

最后我们来进行小程序端侧的云函数集成。

 

首先我们集成注册登录的云函数login。由刚刚我们设计的代码逻辑可知,当userName和userAvatar返回空字由串时代表了一次注册请求行为,我们主动授权支付宝小程序获得支付宝的昵称和头像。值的注意的是,在调用授权行为时,小程序会唤起授权行为弹窗,用户点击允许,我们才可以获得支付宝的头像和昵称信息。

 

然后,我们调用updateUser云函数接口,根据授权获取到的用户昵称和头像更新数据库信息

 

最后,本地缓存登录用户信息,以便在其他小程序页面中使用。

 image.png

接下来我们简单集成一下疫苗预约的场景

 

如上图所示,我们给按钮绑定appointment事件用于云函数调用触发,并透过小程序的data属性来完成云函数所需参数的传递。然后,在appointment事件的处理函数中通过调用bookAppointment,并传递本地缓存的userId以及事件传入的vaccineId和siteId参数。最后,分别对预约成功和预约失败的场景编写弹窗逻辑来提示和告知使用者本次行为的结果。

五、 课程总结

image.png

本节课程,主要学习了云函数开发和云函数实战。在云函数开发方面,介绍了本地开发打包部署控制台调试端侧集成。在云函数实战方面,我们以登录注册和疫苗预约两个典型场景演示了业务逻辑设计,业务逻辑实现以及集成测试的基本流程。

 

相关文章
|
数据采集 运维 Serverless
云函数采集架构:Serverless模式下的动态IP与冷启动优化
本文探讨了在Serverless架构中使用云函数进行网页数据采集的挑战与解决方案。针对动态IP、冷启动及目标网站反爬策略等问题,提出了动态代理IP、请求头优化、云函数预热及容错设计等方法。通过网易云音乐歌曲信息采集案例,展示了如何结合Python代码实现高效的数据抓取,包括搜索、歌词与评论的获取。此方案不仅解决了传统采集方式在Serverless环境下的局限,还提升了系统的稳定性和性能。
409 0
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的小程序疫苗预约网站系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的小程序疫苗预约网站系统的详细设计和实现(源码+lw+部署文档+讲解等)
237 0
|
存储 固态存储 Serverless
函数计算操作报错合集之创建云函数并设置代码从Bucket获取时,返回403错误,该如何解决
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
260 3
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的在线疫苗预约小程序附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的在线疫苗预约小程序附带文章源码部署视频讲解等
192 3
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的疫苗预约小程序的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的疫苗预约小程序的详细设计和实现(源码+lw+部署文档+讲解等)
165 1
|
小程序 前端开发 JavaScript
微信小程序|在线疫苗预约的设计与实现
微信小程序|在线疫苗预约的设计与实现
211 1
|
运维 Serverless Docker
Serverless 应用引擎产品使用合集之编辑云函数的环境变量如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
JavaScript Java 测试技术
基疫苗预约小程序ssmvue.js附带文章和源代码设计说明文档ppt
基疫苗预约小程序ssmvue.js附带文章和源代码设计说明文档ppt
152 2
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp微信小程序的疫苗发布和接种预约系统的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的疫苗发布和接种预约系统的详细设计和实现
211 2
|
小程序 数据库
小程序云函数从云数据下载excal
该教程介绍了如何使用小程序云函数从云数据下载Excel文件。首先,创建名为`getexcal`的云函数,然后在终端中安装`node-xlsx`依赖。接着,编写云函数代码,从数据库中获取数据,利用`node-xlsx`生成Excel文件并上传至云端。在页面(index)中,提供下载和打开Excel的按钮。当点击“生成excel”时,调用云函数并获取文件下载地址,将其复制到剪贴板并弹出提示。最后,提醒注意每次更新云函数后需重新部署,并确保使用正确的云开发环境ID。
437 1

相关产品

  • 移动研发平台