小程序云开发入门指南一

小程序云开发功能对于个人开发者来说确实是一大福利,大大节约了简单小程序的开发周期,以极简的使用方式为小程序开发者提供了一个云服务器,以后一些简单的后端服务就再也不用自己另外搭建服务器啦。同时一些简单的操作也可以用云函数来处理。

本文将讲解以下内容:

1、云开发的开通及体验。

2、云开发的应用。

3、云开发的管理。

1、云开发开通及体验。

使用小程序云开发推荐使用小程序云开发模板开创建项目(如果没有该选项建议升级或重装开发者工具)。

创建完成后会出现如下项目界面:

这里会有一些云开发的简单操作,云函数,上传图片,数据库操作。

要使用这些功能首先需要开通云开发功能。

所有小程序开发者都可以点击开发者工具头部“云开发”按钮开通云开发功能。

开通后可以先使用获取openid的云函数,也就是用户登录操作。

如上图,需要打开模板中 cloudfunction文件夹右键点 -> login -> 上传并部署。第一次打开可能没有"上传并部署"选项而是"创建并部署",可以先点击“创建并部署”,然后再右键点击login就会出现“上传并部署”。

此时点击“点击获取openid”按钮会打开新页面并显示出当前开发者自己的openid。如果没有出现Openid可以开控制台是否有报错,通常第一次开通会提示云函数'login'不存在。

此问题是由于云函数缓存造成的,可在‘cloudfunction’ 文件夹上右键 -> 当前环境 -> '选择刚才在开通云开发是创建的云环境' ,此时开发者工具就会同步云函数列表,同步完成后再点击“点击获取openid”按钮就能获取到openid。如果还是不行就在去社区提BUG吧!

上传图片和数据库操作会在后续内容中讲解,云开发模板也提供了使用引导,可以快速上手。

2、云开发的应用。

使用云开发功能开发项目建议直接在云开发模板上进行,也可以把普通快速模板修改成云开发项目。

云开发由于版本问题需要先测试兼容:

因此使用云开发开发的项目存在着低版本无法使用的问题。

App({
 onLaunch: function() {
 if (!wx.cloud) {
 console.error('请使用 2.2.3 或以上的基础库以使用云能力')
 } else {
 wx.cloud.init({
 traceUser: true,
 })
 }
 this.globalData = {}
 this.getOpenId();
 },

 getOpenId() {
 wx.cloud.callFunction({
 name: 'login',
 fail: err => {
 console.log(err)
 },
 complete: res => {
 if (res.errMsg.indexOf(':ok') !== -1) {
 if (this.showConsole && typeof this.showConsole === 'function') {
 this.showConsole(res);
 }
 } 
 }
 })
 }
})

在complete中判断showConsole只是用来在index页面onLoad时传入用户的openid。此处的getOpenId() 就是使用了云函数Login来实现获取openid的。

云开发最重要的当然是数据库操作,使用数据库操作需要先在云开发控制台的数据库中创建集合。集合相当于Mysql数据库的表(table)的概念,小程序提供的数据库是存储一个JSON格式的数据,类似于MongoDB,这种非关系型数据库在小项目中使用很频繁,至于数据库的表和数据结构设计可以自行搜寻相关书籍学习。

数据库查询是必然操作,如上图 getArea函数使用了云开发数据库的查询功能,首先在页面顶部注册了两个变量

const db = wx.cloud.database()
const _ = db.command;

db 指向的是小程序数据库操纵对象。_ 代表db对象的command对象。

db.collection(); 是云开发sql的操作指令,在云开发的数据库中创建了集合 'grounp-area',可以手动点击添加记录按钮添加一条记录。

db.collection('group-area').where({});意思是从集合'group-area'中查询数据,.where(object) 中的object则是用来筛选数据库查询结果,也就是sql的条件,为空则表示查询此集合中的全部数据。详细命令建议查看官方文档云开发数据库部分的说明。

现在展示一个复杂一点的数据查询 getGroups()方法。

先介绍一下要查询的集合 groups(模拟的微信群) 的数据结构。

这是groups集合中的某条记录代表一个模拟的微信群包含群id,name,desc,relationArea和relationWorkType。relationArea与relationWorkType是指群所关联的地区和群员工种。

getGroups() 是用来根据relationArea和relationWorkType查询出对应的微信群。

在db.collection().where() 中构造了查询条件。let where = ....。是一个查询条件,翻译成明文的意思是:在groups集合中查询所有符合条件的记录,条件是记录的relationArea的值在数组['W8b8hd2AWotkkUQ1',curArea._id中('W8b8hd2AWotkkUQ1'是一个写死的字段也就是无论在picker选择所属地区的组件里怎么修改,都一定能搜索到关联此地区的记录。curArea是通过picker组件来选择当前向想搜到的群聊所属的地区),或者记录的relationWorkType的值在数组['W8ajxd2AWotkjhxB',curWorkType._id中。('W8ajxd2AWotkjhxB'是一个写死的字段也就是无论在picker选择所属工种的组件里怎么修改,都一定能搜索到关联此种工种的记录。curWorkType是通过picker组件来选择当前向想搜到的群聊所属的工种)。

可能这段文字理解起来困难点,如果是本来就懂mysql可以翻译成如下句子:

select * from groups where relationArea in ('W8b8hd2AWotkkUQ1', xxx) and relationWorkType in ('W8ajxd2AWotkjhxB', xxx);

数据库操作增删改都是比较简单的操作,可以看官方文档示例。

3、云开发的管理。

云开发由于没有后台,无法做到后端管理数据,所以可以在小程序端实现自己的内容管理。

我在index页面onload时获取了当前用户的openid,对比openid在已定义的administrator中则表示当前用户是管理员。设置当前页面全局变量 showConsole为true,然后在设置一个隐藏按钮通过点击按钮判断showConsole是否为true,通过两个维度来控制显示一个隐藏的控制台按钮。

这是我的项目界面,下面的console按钮就是控制台按钮,只有管理员可见,普通用户不可见。

这是管理页面的一部分,可以在这里做内容管理,比如新增,修改,删除地区,工种,群聊等操作。增删改的数据库操作是很简单的,看官网示例很容易就能学会。这样就实现了随时随地管理自己的小程序的功能。

作者

x837195936。小程序社区博主,坚持原创分享技术博文。

本文原创发布于小程序社区。未经许可,禁止转载

原文地址:小程序云开发入门指南一-小程序社区/博主专区-微信小程序开发社区-微信小程序联盟

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 162,050评论 4 370
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,538评论 1 306
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 111,673评论 0 254
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,622评论 0 218
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,047评论 3 295
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,974评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,129评论 2 317
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,893评论 0 209
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,654评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,828评论 2 254
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,297评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,619评论 3 262
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,326评论 3 243
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,176评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,975评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,118评论 2 285
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,909评论 2 278

推荐阅读更多精彩内容