欢迎光临建站系统网站,我们的服务范围是一键建站,公司建站等。

建站系统

一个高端新的网络集成营销平台

【小程序+云开发】实战:一天搭建小型论坛

作者:jcmp      发布时间:2021-04-14      浏览量:0
笔者最近涉猎了小程序相关的知识,于是利用

笔者最近涉猎了小程序相关的知识,于是利用周末时间开发了一款类似于同事的小程序, 深度体验 了小程序云开发模式提供的 云函数、数据库、存储 三大能力。关于云开发,可参考文档: 小程序·云开发 。 个人感觉云开发带来的最大好处是 鉴权流程的简化和对后端的弱化 ,所以像笔者这种从未接触过小程序开发的人也能够在周末两天时间内开发出一个功能完备、体验闭环的勉强能用的产品。 最后,本文并不是搬运官方文档,也不会详细介绍开发工具和云开发后台的使用,所以建议结合上面给出文档链接一起消化本文。

一、功能分析

该小程序功能目前较为简单(发布帖子、浏览帖子、发布评论),可用下图表示,无需赘述:

由架构图可知,云开发的数据库(存帖子、存评论)、存储(图片)、云函数(读、写、更新数据库等)都将涉及, 很好地达到了练手的目的 。

二、发布帖子

如果帖子不带图片,直接写数据库即可,如果带图片则需要先存入图片到云开发提供的存储中,拿到返回的fileId(可理解为图片的url)再一并写入数据库,核心代码:

通过 img_url_ok.length == img_url.length 我们确定所有图片已经上传完成并返回了对应的id,然后执行写入数据库的操作:

通过 wx.cloud.callFunction 我们调用了一个 云函数 (通过 name 指定函数名),并将帖子内容 content 和图片 image_url 以及其他信息(发布者昵称、id等)一并传到云端。然后再看看这个云函数:

可以看到,云函数写入了一条数据库记录,我们的参数通过 event 这个变量带了进来。

三、获取帖子列表

所谓获取帖子列表其实就是读上一节写入的数据库,但是我们并不需要全部信息(例如图片url),并且要求按照时间排序,如果熟悉数据库的话,会发现这又是一条查询语句罢了:

四、浏览帖子内容

浏览帖子内容及给定一个帖子的id,由帖子列表点击时带入:

然后在云函数中根据这个id拿到全部数据:

拿到全部数据后,再根据图片id去加载贴子的图片:

这里 that.downloadImages(postdetail.image_url) 即加载图片:

五、发表评论

发表评论和发布帖子逻辑类似,只是写入的数据不同,不做赘述。

六、总结

前面说过,云开发弱化了后端(简化鉴权本质也是弱化后端),这样带来的好处就是提高了开发效率,因为前后端联调向来都是一件耗时间的事情,而且小程序本身主打的就是小型应用,实在没有必要引入过多的开发人员。但云开发也不是万能的,例如我一开始想做RSS阅读器,那么后端就需要聚合信息,目前云开发还做不了。个人感觉只要是信息类的小程序,如新闻类、视频类,云开发目前都很乏力,因为数据库的支持还过于简陋(也可能是我太菜,没发现很好的解决办法,欢迎拍砖)。但如果是本文提及的这种用户自己也会产生信息的小程序,那么云开发则会有开发效率上的优势。最后就是云开发目前提供的2G数据库和5G存储,对于一些用户量较多的小程序是否足够也是个问题,目前也没见有付费版。 总的类说,初次接触小程序开发,还是发现有不少值得借鉴学习之处。 源码: vimerzhao/RssHub。