10-小程序云开发
码路教育 8/16/2001
# 一,云开发介绍
# 1,传统开发模式
传统开发项目模型:
特点:
- 维护服务器成本
- 对于单纯会前端的人来说,学习后端相关的技术,成本较高
# 2,云开发模式
云开发模式:
云开发核心技术
- 云数据库
- 云存储
- 云函数
云数据库
- 小程序端直接对数据库进行增删改查
- 类似于MongoDB的文档存储的数据库
云存储
- 在小程序端直接上传、下载、删除文件
- 自带CDN,提高文件访问速度
- 可以获取临时链接,支持在小程序外访问
云函数
- 提供了在服务器代码的执行能力
- 包含微信天然的私有鉴权
- 更大权限的操作数据库等
- 进行云调用、HTTP请求等操作
传统开发与云开发对比:
# 3,创建项目与项目目录结构分析
- 直接课堂演示
# 4,环境的配额与项目初始化
什么是环境
- 一个环境对应一整套独立的云开发资源,包括数据库、存储空间、云函数等资源。
- 各个环境是相互独立的,用户开通云开发后即创建了一个环境,默认可拥有最多两个环境。
什么是配额
- 就是云开发的配置,之前有免费的,现在开始收费了
- 可以根据自己的业务量选择对应的更高配额
- 参考:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/billing/quota.html
项目初始化
- 在小程序端开始使用云能力前,需先调用 wx.cloud.init 方法完成云能力初始化
- env: 必填,默认选择的环境
- traceUser:非必填,是否在将用户访问记录到用户管理中,在控制台中可见
# 4,云数据库
云开发提供了一个文档型数据库,类似于MongoDB,里面存放的是一条条JSON格式的对象
- 数据库 database
- 集合 collection
- 文档document
操作数据库:
- 控制台操作
- 代码操作
- 云函数中操作
# 5,操作数据库
添加数据
- add
修改数据
- update:更新(增加)某一个字段
- set: 使用新对象替换原来对象
删除数据
- remove
查询数据
- 方式一:通过ID查询精确的某一条数据,使用doc查询ID
- 方式二:根据条件查询满足条件的数据,使用where作为条件
- 方式三:通过指令过滤数据,使用db.command的指令
- 方式四:通过正则表达式匹配符合的数据,使用db. RegExp创建正则规则
- 方式五:获取整个集合的数据(小程序端一次性最多20条,云函数中可以获取100条),直接调用get
- 方式六:过滤、分页、排序查询数据,使用field、skip、limit、orderBy
# 6,云存储
云存储用于将文件存储到云端
- 云存储提供高可用、高稳定、强安全的云端存储服务
- 持任意数量和形式的非结构化数据存储,如视频和图片
- 并在控制台进行可视化管理
云存储对应的操作:
- 上传文件
- 本地文上传到云存储中
- 获取文件的临时链接,在外网可以访问
- 在小程序以外的地方访问(比如浏览器、手机端),可以通过获取临时链接,该链接可以在小程序以外访问,文件链接有效期为两个小时
- 下载文件
- 把云存储中的文件下载到本地
- 文件删除
- 将文件从云存储中删除掉,这样可以省略空间
# 7,云函数与云调用
云函数即在云端(服务器端)运行的函数
- 开发者无需购买、搭建服务器,只需编写函数代码并部署到云端即可在小程序端调用
- 云函数之间也可互相调用
- 一个云函数可由多个文件组成,占用一定量的CPU 内存等计算资源
- 云函数完全独立,可分别部署在不同的地区
注意点
- 一个云函数的写法与我们之前写的的 JS函数一样,代码运行在云端 Node.js 中
- 当云函数被小程序端调用时,写的代码会被放在Node.js 运行环境中执行
- 云函数中,我们可以:进行网络请求,操作云数据库,操作云存储等
- 云函数的独特优势在于与微信登录鉴权的无缝整合
使用步骤
- 创建一个云函数
- 编写云函数的代码逻辑
- 将云函数上传到云端
- 小程序中对云函数调用
云函数中操作数据库
- 云函数中对数据库的操作限制更少,所以我们常常会在云函数中进行数据库操作
- 可以根据条件一次性删除多条数据
- 对数据请求的个数没有严格的限制
云函数中发送网络请求
- 可以使用axios库发生网络请求
云函数生成小程序码
- 对于使用云开发生成小程序码,相对于自己搭建服务器简单很少,因为它拥有天然的鉴权功能
- 参考:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.createQRCode.html