技本功丨收藏!斜杠青年与你共探微信小程序云开发(下篇)
2019年2月26日,人们为了一个杯子疯了一天。
星巴克猫爪杯,一场已经与猫无关了的“圣杯战争“。网上的倒卖价格,已炒至近千元!

求而不得,舍而不能,得而不惜。这是人最大的悲哀。。。
所以,请珍惜以下内容,知识才是人生最大的财富!

前情回顾
在上一篇文章中我们完成了首页的编写,目前基本的功能已经确定了,本节我们进行列表页的编写。列表页比较简单:将所有food列表展示出来,根据openid进行判断是否展示删除按钮即可。用户可以删除自己创建的记录。
开发步骤
新建页面文件
编写页面wxml
编写js
编写样式
测试
下面我们开始进行列表页的编写。
编写页面wxml
match
约定好js中的数据为foodlist,我们对foodlist字段进行循环输出即可:

另外有一个删除按钮根据条件渲染,即当前item的openid跟我们正在使用小程序的用户openid是否一致,一致的话我们展示删除按钮供用户操作即可。之所以这样做是因为目前小程序不支持写他人数据,关于小程序用户权限值可以参考下图:

可以看到管理端拥有绝对的读写权限,但是不支持用户操作另一用户的数据,数据库的操作可以在小程序开发者工具中的云开发工具中进行设置:

编写js
写完页面的模版之后我们就可以进行js的编写,js主要逻辑是:加载完成时调用云开发api获取所有food,提供删除方法调用云开发api进行删除。涉及到的云开发api有getCount获取数据数量、get获取数据、remove删除记录。
通过官方文档我们可以看到remove函数的参数:

我们需要记录的引用来调用删除函数,获取某条记录的引用我们可以通过doc函数获取:

我们可以传入记录的id就能获取这条记录的引用,下面我们实现具体的删除方法delItem。删除方法我们只需要记录的id即可进行删除:

编写好删除方法后我们编写获取所有数据记录的方法,这里仅仅用作演示获取所有记录,实际环境中还是建议使用分页特性分批次获取数据。
使用get方法获取数据默认最多获取的是20条数据,因此要获取所有数据我们要结合count函数和skip函数进行递归来获取集合所有数据:
1、首先我们写一个根据相应参数获取数据的方法

2. 然后编写一个调用findfood方法的用于递归的函数

3. 最后我们编写供js直接使用的getAllFood函数

在这个函数里我们使用getCount函数获取集合数量,然后计算页数,再根据页数进行循环调用flag_pop函数即可。
编写获取所有数据方法后我们就回到页面的js编写上,值得注意的是有一个云函数需要调用,我们有一个getUserInfo的方法来获取用户的openid,云函数是微信服务端进行的私有鉴权,因此我们部署上去后就可以使用,获取用户openid的函数体是:

创建云函数在根目录下的cloudFunc|(环境名称)右键然后点击“新建nodeJS云函数”即可创建云函数模版,部署云函数在云函数的文件夹下右键然后选择“创建并部署”即可。使用云函数可以通过wx.cloud.callFunction()调用,该函数在官方文档中描述为:

云函数的具体使用可以参考官方示例文档:
https://dwz.cn/C95gkLVv
接下来我们在页面的js文件里编写一个出初始方法用于获取所有数据,并在onShow的时候调用它。我们首先使用getUserInfo云函数获取当前用户的openid,然后再去获取所有的数据。详细代码如下:

openid的作用主要是页面上用于判断是否显示删除按钮,数据库中的所有记录都会有一个_openid字段,值是这条记录的创建者的openid,当前小程序的使用用户的openid跟记录中的__openid字段相同才可以进行删除。
下面我们在页面的js中定义好删除事件deletefood,删除事件有模版传过来一个记录值的id,我们使用deleteFood方法把参数也就是id传给until中的delItem即可。deletefood方法实现如下:

全部完成后我们就能在列表页查看所有food了:

给这个页面加上简单的css之后就变成这样的:

可以看到我创建的“不加醋的糖醋里脊“可以被删除。
结 语
至此我们的“吃什么”小程序就开发完啦,首页长这样子:

集成了云开发的添加,删除特性,使用了一个简单的云函数,虽然简单但是对于新手上手云开发还是很有帮助的,小程序源码开放在Github中,需要源码的可以自行下载:
https://github.com/topiniu/eatwhat
技本功丨收藏!斜杠青年与你共探微信小程序云开发(下篇)的更多相关文章
- 微信小程序云开发-数据库和云函数的应用-点赞/收藏/评论功能
一.准备工作 1.创建数据库表articles,字段分别为: 序号 字段名称 字段类型 字段值 字段描述 备注说明 1 title string "标题1" 文章标题 2 de ...
- 用小程序·云开发两天搭建mini论坛丨实战
笔者最近涉猎了小程序相关的知识,于是利用周末时间开发了一款类似于同事的小程序,深度体验了小程序云开发模式提供的云函数.数据库.存储三大能力.关于云开发,可参考文档:小程序·云开发. 个人感觉云开发带来 ...
- 小程序·云开发的HTTP API调用丨实战
小程序云开发之httpApi调用. 小程序云开发之httpApi调用(返回"47001处理") 技术栈 采用 nodejs + express 搭建web服务器,采用 axios ...
- 技本功丨知否知否,Redux源码竟如此意味深长(上集)
夫 子 说 元月二号欠下袋鼠云技术公号一篇关于Redux源码解读的文章,转眼月底,期间常被“债主”上门催债.由于年底项目工期比较紧,于是债务就这样被利滚利.但是好在这段时间有点闲暇,于是赶紧把这篇文章 ...
- 微信小程序session_key解析中反斜杠问题处理 Java解析
Java服务端微信小程序解密用户信息.手机号需用到session_key也需要decode,以下是官方描述: 加密数据解密算法 接口如果涉及敏感数据(如wx.getUserInfo当中的 openId ...
- 技本功丨请带上纸笔刷着看:解读MySQL执行计划的type列和extra列
本萌最近被一则新闻深受鼓舞,西工大硬核“女学神”白雨桐,获6所世界顶级大学博士录取 货真价值的才貌双全,别人家的孩子 高考失利与心仪的专业失之交臂,选择了软件工程这门自己完全不懂的专业.即便全部归零, ...
- 技本功丨利用 Atomic 构建 React 项目工作流,so easy!
近日刷微博,#2018年结婚率创新低#荣登热门话题NO.1,沪浙最不积极. 生活压力越大,缺爱的人也越来越多...据本萌的不完全观察,程序猿虽然是压力加成的职业,在袋鼠云还是有不少早早脱了单.至于,脱 ...
- 技本功丨用短平快的方式告诉你:Flink-SQL的扩展实现
2019年1月28日,阿里云宣布开源“计算王牌”实时计算平台Blink回馈给ApacheFlink社区.官方称,计算延迟已经降到毫秒级,也就是你在浏览网页的时候,眨了一下眼睛,淘宝.天猫处理的信息已经 ...
- 技本功丨知否知否,Redux源码竟如此意味深长(下集)
上集回顾 Redux是如何使用的?首先再来回顾一下这个使用demo(谁让这段代码完整地展示了redux的使用) 如果有小伙伴对这段代码不是很理解的话,建议先去学习Redux的使用再来看这篇源码,这样更 ...
随机推荐
- 如何求出数组中最小(或者最大)的k个数(least k问题)
输入n个整数,如何求出其中最小的k个数? 解法1. 当然最直观的思路是将数组排序,然后就可以找出其中最小的k个数了,时间复杂度以快速排序为例,是O(nlogn): 解法2. 借助划分(Partitio ...
- css让不同大小的图片适应div的大小,且不变形。
做成背景图片 单个 .imgdiv { width: 100px; // 你要的正方形 height: 100px; // 你要的正方形 background-image: url(/your/ima ...
- CentOS7 更换OpenStack-queens源
根据官网的安装文档来对OpenStack搭建时碰到一个问题,安装完centos-release-openstack-queens后相当于是增加了一个OpenStack的源,但是因为这个源是在国外安装一 ...
- 菜鸟级渣渣 关于MAC系统开发java的吐槽
最开始买电脑的时候不知道为什么脑子一抽买了个苹果.因为不知道和谁聊的.后期服务器大部分都是linux系统,后期也要学linux系统.mac系统类似linux系统.然后就买了个mac,感觉凭借自己的聪明 ...
- ElasticSearch优化系列五:机器设置(硬盘、CPU)
硬盘对集群非常重要,特别是建索引多的情况.磁盘是一个服务器最慢的系统,对于写比较重的集群,磁盘很容易成为集群的瓶颈. 如果可以承担的器SSD盘,最好使用SSD盘.如果使用SSD,最好调整I/O调度算法 ...
- 关于Xshell无法连接本地虚拟机的问题
近期想搭建一个测试用的集群,但是! 刚开始搭第一台虚拟机就出现问题了,Xshell无法连接到虚拟机! 然后我更改了/etc/sysconfig/network-scripts/ifcfg-ens33 ...
- 基于MATLAB的多项式数据拟合方法研究-毕业论文
摘要:本论文先介绍了多项式数据拟合的相关背景,以及对整个课题做了一个完整的认识.接下来对拟合模型,多项式数学原理进行了详细的讲解,通过对文献的阅读以及自己的知识积累对原理有了一个系统的认识.介绍多项式 ...
- 对SSL一个疑问的新理解
看了很多关于Https/SSL的介绍,关于数字证书部分,我一直有个疑问:如果数字证书文件被别人拿到,那是不是就可以进行通讯了呢?如果这样,那整个安全机制就完全失去作用了.从开发的角度,我拿到别人的数字 ...
- 20155310 2016-2017-2 《Java程序设计》第一周学习总结
20155310 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 通过对第一章第二章的学习我了解到了JVM.JRE与JDK的重要性,并且下载.安装并测试了JD ...
- 20155332 2016-2017-2《Java程序设计》第1周学习总结
# 20155332 2016-2017-2<Java程序设计>第1周学习总结 教材学习内容总结 课本提问 1.Java平台概论:为什么需要Java程序设计语言? 2.Java平台概论:版 ...