当前位置:K88软件开发文章中心编程全书微信小程序 → 文章内容

微信小程序云开发基础

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-15 15:02:15

由 Carrie 创建, 最后一次修改 2018-11-05 起步开发者可以使用云开发开发微信小程序、小游戏,无需搭建服务器,即可使用云端能力。云开发为开发者提供完整的云端支持,弱化后端和运维概念,无需搭建服务器,使用平台提供的 API 进行核心业务开发,即可实现快速上线和迭代,同时这一能力,同开发者已经使用的云服务相互兼容,并不互斥。目前提供三大基础能力支持:云函数:在云端运行的代码,微信私有协议天然鉴权,开发者只需编写自身业务逻辑代码数据库:一个既可在小程序前端操作,也能在云函数中读写的 JSON 数据库存储:在小程序前端直接上传/下载云端文件,在云开发控制台可视化管理我的第一个云开发小程序新建项目选择一个空目录,填入 AppID(使用云开发能力必须填写 AppID),勾选创建 “云开发 QuickStart 项目”,点击创建即可得到一个展示云开发基础能力的示例小程序。该小程序与普通 QuickStart 小程序有以下不同需注意:无游客模式、也不可以使用 测试号project.config.json 中增加了字段 cloudfunctionRoot 用于指定存放云函数的目录cloudfunctionRoot 指定的目录有特殊的图标云开发能力从基础库 2.2.3 开始支持兼容性问题注意,云开发能力从基础库 2.2.3 开始支持,现在 2.2.3 或以上的基础库没有完全覆盖所有用户(目前约 90% ),如需使上传的代码能够覆盖全量用户,请做以下特殊处理:在 app.json / game.json 中增加字段 "cloud": true指定后云能力可以在所有基础库中使用,并且如果云能力有更新,并不会随着基础库升级而自动升级,需在后续版本发布后重新上传。如 2.2.4 发布后,需重新上传才能将云能力更新至 2.2.4 版本的云能力。开通云开发创建了第一个云开发小程序后,在使用云开发能力之前需要先开通云开发。在开发者工具工具栏左侧,点击 “云开发” 按钮即可开通云开发。云开发开通后自动获得一套云开发环境,各个环境相互隔离,每个环境都包含独立的数据库实例、存储空间、云函数配置等资源。每个环境都有唯一的环境 ID 标识,初始创建的环境自动成为默认环境。云开发控制台云开发控制台是管理云开发资源的地方,控制台提供以下能力:概览:查看云开发基础使用数据用户管理:查看小程序用户信息数据库:管理数据库,可查看、增加、更新、查找、删除数据、管理索引、管理数据库访问权限等存储管理:查看和管理存储空间云函数:查看云函数列表、配置、日志和监控统计分析:查看云开发资源具体使用统计信息资源环境一个环境对应一整套独立的云开发资源,包括数据库、存储空间、云函数等。各个环境间是相互独立的,用户开通云开发后初始默认可拥有最多两个环境。在实际开发中,建议每一个正式环境都搭配一个测试环境,所有功能先在测试环境测试完毕后再上到正式环境。以初始可创建的两个环境为例,建议一个创建为 test 测试环境,一个创建为 release 正式环境。云开发能力小程序·云开发提供了三个基础能力:数据库、存储和云函数,这一章节我们介绍下这几个能力分别是什么,我们能用他来做什么。数据库云开发提供了一个 JSON 数据库,顾名思义,数据库中的每条记录都是一个 JSON 格式的对象。一个数据库可以有多个集合(相当于关系型数据中的表),集合可看做一个 JSON 数组,数组中的每个对象就是一条记录,记录的格式是 JSON 对象。关系型数据库和 JSON 数据库的概念对应关系如下表:关系型文档型数据库 database数据库 database表 table集合 collection行 row记录 record / doc列 column字段 field以下是一个示例的集合数据,假设我们有一个 books 集合存放了图书记录,其中有两本书:[ { "_id": "Wzh76lk5_O_dt0vO", "title": "The Catcher in the Rye", "author": "J. D. Salinger", "characters": [ "Holden Caulfield", "Stradlater", "Mr. Antolini" ], "publishInfo": { "year": 1951, "country": "United States" } }, { "_id": "Wzia0lk5_O_dt0vR", "_openid": "ohl4L0Rnhq7vmmbT_DaNQa4ePaz0", "title": "The Lady of the Camellias", "author": "Alexandre Dumas fils", "characters": [ "Marguerite Gautier", "Armand Duval", "Prudence", "Count de Varville" ], "publishInfo": { "year": 1848, "country": "France" } }]在图书信息中,我们用 title, author 来记录图书标题和作者,用 characters 数组来记录书中的主要人物,用 publishInfo 来记录图书的出版信息。在其中我们可以看到,字段既可以是字符串或数字,还可以是对象或数组,就是一个 JSON 对象。每条记录都有一个 _id 字段用以唯一标志一条记录、一个 _openid 字段用以标志记录的创建者,即小程序的用户。需要特别注意的是,在管理端(控制台和云函数)中创建的不会有 _openid 字段,因为这是属于管理员创建的记录。开发者可以自定义 _id,但不可自定义和修改 _openid。_openid 是在文档创建时由系统根据小程序用户默认创建的,开发者可使用其来标识和定位文档。数据库 API 分为小程序端和服务端两部分,小程序端 API 拥有严格的调用权限控制,开发者可在小程序内直接调用 API 进行非敏感数据的操作。对于有更高安全要求的数据,可在云函数内通过服务端 API 进行操作。云函数的环境是与客户端完全隔离的,在云函数上可以私密且安全的操作数据库。数据库 API 包含增删改查的能力,使用 API 操作数据库只需三步:获取数据库引用、构造查询/更新条件、发出请求。以下是一个在小程序中查询数据库的发表于美国的图书记录的例子:// 1. 获取数据库引用const db = wx.cloud.database()// 2. 构造查询语句// collection 方法获取一个集合的引用// where 方法传入一个对象,数据库返回集合中字段等于指定值的 JSON 文档。API 也支持高级的查询条件(比如大于、小于、in 等),具体见文档查看支持列表// get 方法会触发网络请求,往数据库取数据db.collection('books').where({ publishInfo: { country: 'United States' }}).get({ success: function(res) { // 输出 [{ "title": "The Catcher in the Rye", ... }] console.log(res) }})更多的数据库的 API 的使用和数据库

[1] [2]  下一页


微信小程序云开发基础