小程序云开发
小程序云开发
小程序云开发
什么是云开发?
所谓云开发,就是将服务端的功能都封装起来,然后向客户端提供 API 访问这些封装的功能。服务端的主要功能无外乎数据存储、文件上传下载、视频/音频流等功能。
云开发为开发者提供完整的云端支持,弱化后端和运维概念,无需搭建服务器,使用平台提供的 API 进行核心业务开发,即可实现快速上线和迭代,同时这一能力,同开发者已经使用的云服务相互兼容,并不互斥。
那么问题来了,具体怎么用云开发来开发小程序呢?
目前提供三大基础能力支持:
云函数 :
云函数就是一段可以运行在服务端的代码,之所以要将部分代码在服务端运行,主要有如下两个原因:
云数据库 :
云数据库是指在服务端提供的数据库服务,小程序云提供的数据库属于文档数据库,文档数据库有别于关系型数据库。传统的关系型数据库中可以保存若干个表,每一个表由若干条记录组成。但文档数据库保存的是 JSON 格式的数据,每一个 JSON 文档相当于关系型数据库中的一个表。也就是说,文档数据库保存的是 JSON 文档的集合。非常流行的 MongoDB 就是典型的文档数据库。云数据库个组成部分对应的关系如下表所示。
关系数据库 | 文档数据库 |
---|---|
数据库(DataBase) | 数据库(DataBase) |
表(table) | 集合(collection) |
行(row) | 记录(record/doc) |
列(column) | 字段(field) |
- 云存储 :云存储为小程序提供了远程上传和下载文件的能力。下载可以提供权限管理,小程序可以通过相应的 API 实现文件的上传和下载功能。
搭建云开发环境
首先应该下载最新版的微信开发者工具,然后在小程序后台获取 AppID。使用云开发功能,必须使用真实的 AppID,不能使用测试用的 AppID。
真实appid,选中小程序云开发。
这是一个开通云服务的页面,单击“开通”按钮,就会开通用于云开发的服务。在开通的过程中会出现如下图所示的确认对话框,单击”确定“按钮进入下一个设置页面。
这个页面是”新建环境“页面,如下图所示。需要输入“环境名称”,一个任意的字符串。在下面列出了基础版的配置,如数据库存储空空间、云函数数量等。
部署 login 云函数
模板会默认创建一个 login 云函数,用于返回 OpenID(标识当前微信登录用户的 ID),所以在开发基于云的小程序之前,首先要先部署 login 云函数。
选中 login 云函数,在右键菜单中单击“上传并部署”菜单项进行部署
成功部署 login 云函数后,回到小程序的主页面,单击“点击获取 openid”按钮,如图所示,则会通过 login 云函数获取 openid。
开始开发一个基于云的小程序(数据库的创建,CRUD)
**一个集合就相当于一个表。选择环境后,小程序就会默认有一个数据库,所以就不需要单独创建数据库了,只需要在该数据库中创建若干个集合(表)即可。
首先打开云开发控制台,切换到“数据库”页面,单后单击左上角的“添加集合”,弹出如下图所示的“添加集合”对话框,输入集合的名字,然后单击“确定”按钮添加集合。**
创建一个新集合后。可以通过单击右侧的“添加记录”导入 json 或 csv 文件,每个文件最大 50 MB。但是一般都是通过业务代码去操作。
获得 openid 后,会跳到 userConsole 页面,因此我们在这个页面的 onLoad() 函数中向 test 集合插入一个 json 文档。
在小程序开发工具中定位到 userConsole.js 文件,并找到 onLoad() 函数,如下图所示。
在 onLoad() 函数中会从全局变量(globalData)中获取 openid。操作集合首先要通过 init() 函数初始化环境,init() 函数的语法格式如下:
wx.cloud.init({env:envname})
其中,envname 是字符串类型的值,表示要使用的环境名,因为在前面已经创建了一个名为 test-mini 的环境了,所以本例的 envname 的值是’test-mini’。
使用下面的代码获取数据库和集合对象:
const db = wx.cloud.database()
const test = db.collection('test')
其中,test 是前面建立的集合名。
最后使用 add() 方法插入 json 格式的数据,完整的代码如下:
wx.cloud.init({env:'minicloud'})
const db = wx.cloud.database()
const test = db.collection('test')
test.add({
// data 字段表示需新增的 JSON 数据
data: {
name: "Bill",
age:30
},
success: function (res) {
// 输出成功插入后的id以及其他信息
console.log(res)
}
})
现在重新运行程序,获取 openid 后,回到云开发控制台,会看到 test 集合多了如下图所示的数据,这表明 json 文档已经插入成功。