# 基础篇 2:小程序·云开发基础知识
小程序·云开发 是微信团队联合腾讯云团队推出的一套小程序开发解决方案。小程序·云开发为开发者提供完整的云端流程,弱化后端和运维概念,开发者无需购买和管理底层计算资源,包括服务器、数据库、静态存储,只需使用平台提供的简易 API 进行核心业务等开发,实现快速上线和迭代,把握业务发展的黄金时期。
简单来说,小程序开发中用到的服务器、数据库和静态资源管理,都可以托管到「小程序·云开发」上,小程序开发者只需要关注业务功能实现,而不需要关心服务器运维等带来的问题。小程序开发主要用到的是前端技术,后端开发和服务运维对于前端开发者来说有一定的门槛,而小程序·云开发的出现就是解决这个问题的。
# 小程序·云开发特点
- 提供完整后端服务解决方案,包括数据库、静态资源管理和云函数(功能服务)
- 背靠腾讯云大平台,腾讯云丰富的 API 和功能都可以简单调用
- 对于普通开发者,完全免费
- 对于高级服务型小程序,提供更强服务支持、计费弹性、不使用不计费的特点
- 无服务器搭建,无域名配置,直接调用 API 使用
对于我们普通开发者来说,小程序·云开发是个不错的练手平台。下面详细介绍下小程序·云开发提供的功能。
小程序·云开发提供数据库、云函数和静态存储三大功能,还有小程序的用户管理功能,在用户管理界面可以轻松掌握小程序的授权用户情况。目前云开发的这些功能已经深度整合到「微信开发者工具 Beta 版」中,可以在顶部点击「云开发」进入。

首页会看到一些 API 调用和小程序·云开发的资源配置信息。
# 申请小程序·云开发
如果还没有开通小程序·云开发账号,首次点击「云开发」会出现下面的界面,该界面主要是云开发的介绍和申请入口。

点击蓝色的「创建资源环境」按钮进入新建环境界面。

第二步出现选择套餐信息,现在公测阶段只有一个免费套餐选项,将来应该会有更多套餐选择。填写上「环境名称」点击确认之后,会使用小程序开发账号在腾讯云开通一个 fake account。到此小程序·云开发就开通了!
TIPS:目前一个小程序账号可以免费开通两个云开发账号,免费版本的限制应该也要注意:
- 数据库存储空间:1GB
- 文件存储空间:5GB
- 文件存储外网下行流量:5GB/月
- 云函数数量:20
- 云函数资源使用量:10万GBs/月
- API调用次数:3万次/天
这些对于我们做普通的小程序开发练习已经足够了!
# 小程序·云开发在小程序中的调用
小程序·云开发可以在小程序中直接通过调用 wx.cloud.* 的方式进行调用,在调用云开发 API 之前,需要先调用 wx.cloud.init 对云开发进行初始化:
wx.cloud.init({
env: 'tianqi-xxx'
})
初始化时,需要传入 env 参数,该参数为创建小程序·云开发时的环境 ID,可以在「云开发」页面右上角「当前环境」下拉菜单中找到:

下面详细介绍下小程序·云开发的三大功能。
# 数据库
小程序·云开发的数据库是一种 NoSQL 云端数据库,数据以 JSON 格式存储,在底层支持弹性可扩展、自动容灾、监控管理,所以开发者不需要关注数据库的运维。从提供的文档和接口来看,云开发的数据库应该是由 MongoDB 实现的。
每个数据库是由多个集合(collection,类比关系型数据库中表的概念)组成,集合有多个 JSON 文档(行)组成,NoSQL 的特点是没有固定的字段,所以整个集合可以看成一个大的 JSON 数组,一个集合在数据库中的存储格式如下:
[
{
"_id": 1,
"_openid": "ax123CVadb",
"name": "Alice",
"city": "Guangzhou"
},
{
"_id": 2,
"_openid": "xj372nJdfa",
"name": "Bob",
"city": "Shenzhen"
}
]
需要说明的是,文档中的 _id 是唯一的,开发者可以插入数据的时候自定义,另外 _openid 是增加文档默认创建的,代表当前小程序用户的唯一标示,后面实战部分笔者会重点介绍小程序的用户授权相关的内容。
