Web 云开发训练营总结 - 初阶

时间:2022-07-23
本文章向大家介绍Web 云开发训练营总结 - 初阶,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

DNSPod x 云开发CloudBase 联合特惠

免运维更省事,低成本快速打造生动的站点应用


云开发活动详情:https://cloudbase.net/community/activities/db9f2d6c5eefa7d20034247749f1879c.html

初阶任务

按照我的理解,初阶任务的目的是帮助开发者熟悉控制台的各项操作和云开发各类资源的使用方法。因此,建议在开始之前先浏览一遍文档,包括腾讯云的 产品文档、云开发网站的 参考指南。这两者不完全重合:前者更偏向理论,主要解释概念、指明限制等;后者更注重实践,主要以 JavaScript 为例,以代码片段的形式讲解使用方法。

任务概览

该任务的最终成果对外呈现为一组网页。一个前台页面(阶段一、三、四)包含从数据库中实时获取的两项文字内容和访客计数,以及从云存储中获取的图片;一个后台页面(阶段二、五、六)可触发云函数修改数据库中的文字,也可以直接向云存储中上传图片。

知识点解析

阶段与涉及的功能

细节与提示

阶段一 静态网站托管(静态网站托管)

缓存时间建议修改为 0 分钟,以免更新完之后看不到效果

阶段二 云接入的使用(云函数、云接入)

云函数的触发方式有 HTTP 触发(本次用到)、定时触发、SDK 调用等;云函数的响应方式有透传、集成响应(本次用到)等;云函数的入参 context 包含了环境变量(用于存储 IP 白名单),入参 event 包含了客户端的 IP,在云函数的代码中进行比较,即可实现基于 IP 的鉴权

阶段三 数据库的使用(数据库)

数据库是 NoSQL 文档数据库,注意体会其较为松散的结构和 _id 可自定义的性质;注意理解并设置好各文档集合的权限;需要先匿名登录,再访问数据库;随机显示 title 时需要使用数据库的 Aggregate.sample 接口;测试时可以使用浏览器的无痕模式快速地获取不同的匿名身份;实现查询表达式时注意先定义const _ = db.command;

阶段四 数据库监听的使用(数据库)

注意需要先登录(获取到用户身份,即auth.hasLoginState())才能监听,否则会提示 PERMISSION_DENIED;建议在监听时指定条件(如.where()

阶段五 云函数的使用(云函数)

需要一个云函数来处理 name 和 title(包括但不限于)“增、删、改”的操作,为了解耦,该云函数和阶段二用于显示后台页面的云函数最好不是同一个;“删除”按钮只删除对应的那一个 title 即可,不需要有清空的功能

阶段六 云存储的使用(云存储)

注意设置好存储集合的权限,注意修改缓存时间;percentCompleted 即为进度条需要参考的百分比,将修改前端进度条参考值的代码写在 onUploadProgress 所触发的函数内部、该值定义之后的位置即可

再加亿点点细节

  • 入参event.headers 中有 x-forwarded-forx-real-ip 两个属性,应使用哪个?
  • 调用 API 时,哪些接口需要在获取到用户身份的前提下使用?
  • 设置权限时,如何理解“创建者”和“管理员”?(参考 权限控制
  • 监听时,一定要指定条件吗?(此为官方人员给出的建议,但在实际开发中会发现无条件也可监听)
  • 登录完成后能否立即开始无条件监听?“立即开始”和“先初始化再开始”,这两个方案的优劣各有哪些?
  • 用于修改数据的云函数,是否也应该使用 IP 白名单?
  • 在仅有一个 title 时,是否应该禁止删除?
  • 在给定的需求下,图片上传能否使用云函数实现?
  • 在当前任务的要求下,上传图片时 cloudPath 是否可以为固定值?如果是固定值,那在开发完成转实际使用时需要注意什么问题?
  • ……

CloudLite 认证

“人在考试的时候学习效率是最高的。”

完成初阶任务后再参加认证考试,难度应该不大。如果之前完全没接触过小程序的话,建议先熟悉一下小程序的目录结构等知识。