云开发有什么好处?

云开发为开发者提供完整的云端支持,弱化后端和运维概念,无需搭建服务器,使用平台提供的 API 进行核心业务开发,即可实现快速上线和迭代,同时这一能力,同开发者已经使用的云服务相互兼容,并不互斥。

云开发能做什么?

  • 云函数:在云端运行的代码,微信私有协议天然鉴权,开发者只需编写自身业务逻辑代码
  • 数据库:一个既可在小程序前端操作,也能在云函数中读写的 JSON 数据库
  • 存储:在小程序前端直接上传/下载云端文件,在云开发控制台可视化管理

云开发一些注意点

  • 无游客模式、也不可以使用 测试号
  • project.config.json 中增加了字段 cloudfunctionRoot 用于指定存放云函数的目录
  • cloudfunctionRoot 指定的目录有特殊的图标
  • 云开发能力从基础库 2.2.3 开始支持
  • 在实际开发中,建议每一个正式环境都搭配一个测试环境,所有功能先在测试环境测试完毕后再上到正式环境。以初始可创建的两个环境为例,建议一个创建为 test 测试环境,一个创建为 release 正式环境

云数据库

一个 JSON 数据库,即数据库中的每条记录都是一个 JSON 对象。一个数据库可以有多个集合,集合可看做一个 JSON 数组,数组中的每个对象就是一条记录,记录的格式是 JSON 对象。

云存储

一块存储空间,提供了上传文件到云端、带权限管理的云端下载能力

云函数

一段运行在云端的代码,无需管理服务器,在开发工具内编写、一键上传部署即可运行后端代码

使用服务端API

  1. 首先安装依赖 wx-server-sdk
  2. 提供哪些函数?
  • init(opt) 初始化云环境,可以传入一个选项对象,有env环境属性
  • getWXContext() 获取微信上下文对象,可以通过该对象获取小程序用户openid、小程序appid、小程序用户unionid
  • database(opt) 获取数据库的引用,可以传入一个选项对象,有env环境属性
  • collection(name) 获取指定名称集合的引用,提供了增删改查基本方法,即get、add、remove、update,也提供了其他方法,如统计集合的记录数count、用于条件查询where、用于排序orderby、用于设置记录数limit、用于设置跳过的记录数skip、用于返回指定字段field
  • doc() 获取指定记录id的引用
  • command 获取数据库指令,便于做筛选查询和更新的操作。提供了比较方法eq、neq、lt、lte、gt、gte,范围限制in、nin,逻辑and、or,更新字段值set,删除字段remove、自增inc、自乘mul、数组类型字段push、pop、shift、unshift进行添加删除操作
  • callFunction(obj) 调用云函数,obj对象可以指定name属性和data属性,name指定云函数名,data指定传递给云函数的参数。返回一个Promise对象,有表示错误信息的errMsg参数,表示云函数执行ID的requestID参数,便于云端日志查找,还有表示云函数返回结果的result参数