本文主要介绍小程序云开发实践中的serverless。传统的小程序开发模式,前后端联调有时需要花费更多的时间。当项目上线后,需要考虑更多的运维问题,购买域名和服务器等云开发正在改变小程序的开发模式。云开发让开发者更专注于业务开发。在云开发的云函数中,我们可以很方便的获取到小程序用户的openId和unionId。授权信息,减少后台开发量云开发是一套综合服务技术产品。通常,开发一个完整的应用(无论是小程序、Web,还是移动应用)都需要数据库、存储、CDN、后端功能、静态托管、用户登录等,而云开发将这些服务整合在一起,并采用全新的开发方式,让应用开发更快、更方便、成本更低、功能更强大,引领未来技术发展新趋势。简单来说,云开发就是一套综合服务的技术产品。通常,开发一个完整的应用程序(无论是小程序、Web还是移动应用程序)都需要数据库、存储、CDN、后端功能和静态托管。、用户登录等,而云开发将这些服务整合在一起,用一种全新的开发方式,让开发一个应用更快、更方便、更便宜、更强大,引领未来技术发展的新趋势。我们不需要区分哪部分是前端,哪部分是后端。我们只需要调用函数就可以进入流程。云函数也可以在本地调试。调试云函数就像调试我们的代码。云开发的优势是快Online更专注于我们的业务,独立开发一个完整的小程序。云开发提供了非常丰富的接口。通过这些接口,我们可以方便的上传文件等操作,而无需考虑运维等问题。云开发更安全,体积小,弹性扩展。程序云开发提供哪些基础能力?小程序云功能计费产品定价支持区域免费配额。每个月的免费额度会在每个月初重置,没有累计额度限制。描述配置云开发项目初始化找到云开发的环境ID,点击云开发控制台窗口中的设置图标,在环境变量标签页找到环境名称和环境ID。用户激活云开发后,创建云开发环境。微信小程序最多可以有两个环境,每个环境对应一整套独立的云开发资源,包括数据库、云存储、云函数、静态托管等,每个环境相互独立。每个环境都有一个唯一的环境ID(环境名称不是唯一的)。指定开发者工具的云开发环境。开通云开发服务后,我们可以在小程序源码的cloudfunctions文件夹名称中看到你的环境名称。如果cloudfunctions文件夹的名字不是环境名,而是“未指定环境”,可以右键点击该文件夹,可以看到弹出窗口的第一项是“当前环境”,有一个小三角形,在这里可以选择或切换已搭建的云开发环境。如果环境为空,重启开发者工具,重新选择。为小程序指定云开发环境在开发者工具中打开小程序源码文件夹下的app.js文件,找到如下代码:wx.cloud.init({//env参数说明://env参数决定下一个小程序程序发起的云开发调用(wx.cloud.xxx)默认会请求哪个云环境的资源//这里请填写环境ID,可以打开云控制台查看环境ID//如果不填写,将使用默认环境(第一次创建的环境)//env:'my-env-id',traceUser:true,})把env:'my-env-id'改成你的environmentID,注意这里需要填写环境ID而不是环境名称,结果如下://因为云开发可以创建多个环境,比如微信小程序可以创建两个免费的云开发环境,一个用于测试和一个正式发布。如果你不指定小程序端环境,默认会选择为你创建的第一个云开发环境。我们可以通过修改env的参数来切换小程序端使用的云开发环境。wx.cloud.init({env:'cloud1-2g12nyjfdh7f4caed9',//全局云开发能力只需初始化一次,其中traceUser属性设置为true,用户访问会记录在用户管理中,在云开发控制平台运行分析——用户访问可以看到访问记录traceUser:true,})小程序云开发资源管理小程序云开发控制台腾讯云开发Web控制台我们也可以使用腾讯云开发WebConsoleto管理云开发资源,需要注意两点。一种是登录方式需要在其他登录方式中选择微信公众号,点击然后用手机微信扫码,在微信上选择你要登录的小程序;二是进入腾讯云后台后,转为云开发Cloudbase。其他工具和方法云开发资源还支持其他调用CloudBaseCLI的方式:我们可以使用云开发提供的命令行工具CloudBaseCLI对云开发环境中的资源进行批量管理,比如批量下载、更新云函数;批量下载、上传文件夹等;TencentCloudBaseToolkit:TencentCloudBaseToolkit是一款VisualStudioCode的云开发插件。使用本插件可以更好的在本地进行云开发项目开发和代码调试,轻松将项目部署到云端;部署和上传云函数云函数根目录和云函数目录cloudfunctions文件夹图标有一个小云,说明这是云函数根目录。展开cloudfunctions,我们可以看到有login、openapi、callback、echo等文件夹,这些都是云函数目录。miniprogram文件夹是小程序的页面文件,cloudfunctions是云函数,miniprogram是小程序的页面。这不是静态的,也就是说,你还可以修改这些文件夹的名称。依赖于项目配置文件project.config.json中的如下配置项:"miniprogramRoot":"miniprogram/","cloudfunctionRoot":"cloudfunctions/",但是最好让小程序页面所在的文件夹placed和cloud的功能文件夹是横向关系,都在项目的根目录下,便于管理。云函数部署及上传右键云函数目录,选择在终端打开,输入npminstall命令下载依赖文件;然后右击云函数目录,在云开发控制台-云函数-云中点击“创建并部署:所有文件”查看函数列表,看云函数是否部署成功。小程序云功能场景小程序云开发获取用户信息不同方式对比应用场景小程序代码图片上传云功能路由优化tcb-routernpmitcb-router云功能超时订阅消息消息推送位置:服务通知消息发送条件:用户订阅留言卡:查看详情跳转到小程序页面。Step1.获取消息模板在微信公众平台的ID2.获取下发权限:wx.requestSubscribeMessage({tmplIds:['templateID'],success(res){console.log(res)}})subscribeNew:获取发送消息的权限,用户可以选择订阅subscribeNew:function(){wx.requestSubscribeMessage({tmplIds:['TemplateID'],success(res){console.log(res)}})}3.调用接口发送订阅消息:subscribeMessage.send这里是云调用订阅消息。首先,创建一个云函数,需要在config.jsonconfig.json中配置subscribeMessage.send权限:"permissions":{"openapi":["openapi.subscribeMessage.send"]}云函数编写//cloud函数入口文件constcloud=require('wx-server-sdk')cloud.init()//云函数入口函数exports.main=async(event,context)=>{constwxContext=cloud.getWXContext()console.log(event,'sendMessage')//订阅消息推送constres=awaitcloud.openapi.subscribeMessage.send({touser:wxContext.OPENID,page:`/pages/index/index`,lang:'zh_CN',data:{name1:{value:event.user_name},thing7:{value:event.name},phone_number5:{value:event.phone},thing6:{value:event.xueli}},templateId:'yXgBDeiRvjIZ98zOA1212CJeCXw8fj09Ir0sNT3ZXI',//7Htemplateid})returnres}用户订阅消息后,可以给用户发送消息
