APP下载

基于云开发和微信小程序的助宠系统设计与实现

2022-07-05殷凤梅静育玉

电脑知识与技术 2022年14期
关键词:微信小程序

殷凤梅 静育玉

摘要:为了方便宠物主获取饲养宠物的科学知识,开发了一个基于微信小程序的助宠系统。该系统使用微信提供的MINA框架,选用JSON数据库,利用云开发控制台手动创建并引用数据库,通过用户的OpenID判断用户的身份权限,构造正则表达式实现模糊查询。使用该系统不仅能获取饲养宠物的科学小知识,还能查询与宠物相关的信息,这样可以让更多的家庭爱护好宠物,让更多的宠物健康快乐地生活。

关键词:微信小程序;云开发;信息查询;宠物健康

中图分类号:TP311.1      文献标识码:A

文章编号:1009-3044(2022)14-0037-03

1 引言

据《2020年中国宠物行业白皮书》(消费报告)统计,2020年全国城镇的猫犬数量已多于一亿只,相对2019年增长了1.7%,随着宠物数量的不断增长,宠物在家庭中的身份地位也在提高,宠主们也越来越多地关注自家的宠物,然而给宠物看病贵已成为2020年最大的养宠痛点[1]。目前宠物医疗成本高,短时间内难以降低,但是如果人们能在日常的生活中更加科学健康地饲养宠物,也许就能减小宠物患病的概率。通过传统的线下咨询方式很难及时、高效地获取宠物相关知识。随着“互联网+”的快速发展,饲养宠物的服务系统和网络平台逐渐增多[2-5]。在这些系统和平台中,很少有涉及宠物心理健康方面的知识。但是宠物也会有自己的心理情绪,若不及时地发现和处理,宠物可能会产生严重的心理问题,如:抑郁症、分离焦虑症、狂躁症等,甚至会导致严重的生理疾病。基于此,设计“助宠”小程序,给宠主提供一个获取养宠知识干货的平台,让宠物主快速精准地获取与宠物健康相关的信息,满足宠物主对宠物生理健康、心理健康等知识的渴求。

小程序依附于微信平台,使用时用户只需采用扫码等方式打开,无须下载软件;退出时可自动进行隐藏,无须其他操作[6]。微信联合腾讯云提供的云开发服务,采用了Serverless开发模式,涵盖了云函数、数据库、CDN (Content Delivery Network,内容分发网络)、存储和云调用能力。开发者无须担心服务器购买、环境搭建、域名备案、上线运维等问题[7],极大地弱化了开发难度。

“助宠”小程序使用微信小程序提供的MINA (Multipurpose Infrastructure for Network Applications) 框架进行开发。前端采用 WXML (WeiXin Markup Language)、WXSS (WeiXin Style Sheets)、JavaScript语言和JSON(JavaScript Object Notation)數据格式,后端采用云开发技术,通过云数据库实现信息的集中存储和管理,借助云存储实现图片的存储,使用云函数实现数据库的访问。

2 相关技术介绍

2.1 微信小程序

1)代码构成

小程序代码由JSON配置文件(.json后缀)、WXML模板文件(.wxml后缀)、WXSS样式文件(.wxss后缀)以及JS脚本逻辑文件(.js后缀)构成。JSON是一种数据格式,起到静态配置的作用。配置文件通常分:小程序配置(app.json)、工具配置(project. config.json)和页面配置(page.json)。WXML模板类似HTML,用来描述某个页面的结构,WXSS样式用于描述WXML中的组件样式,JS交互逻辑用来实现用户的交互功能,即处理事件的响应[8]。

2)MINA框架

MINA框架是一个可以及时响应的数据绑定系统,系统分为逻辑层(App Service)和视图层(View),如图1所示。逻辑层基于JavaScript来实现,视图层由WXML和WXSS来描述。开发者仅需关注数据和逻辑,视图层和逻辑层之间的交互通过数据传输和事件系统来实现。MINA框架不仅提供了基础的组件以及丰富的微信原生应用程序接口API(Application Programming Interface),还对整个小程序的页面路由进行管理[9]。因此,开发者使用MINA框架时,不用去处理线程并发与底层I/O等相对复杂的工作,可以将更多关注点放到业务设计和开发中去[10]。

2.2 云开发

1)数据库

云开发提供了既可在小程序端操作,也可在云函数中读写的JSON数据库。数据库中的每条记录都可以看作是一个JSON格式的对象,每个数据库中可存在多个JSON数组,每个数组认为是一个集合。JSON数据库与传统的关系型数据库的概念对应关系如表1所示。

数据库API提供了增、删、改、查的功能。开发者在小程序内可直接调用小程序端API去处理数据库中的非敏感数据,也可在云函数里通过调用服务端API对数据库进行更加私密安全的操作。

2)存储

云开发提供了一块开发者可以在小程序端和云函数端使用API进行存储操作的空间。云存储提供了高可用、高稳定、强安全的云端存储服务,可以存储任意数量、任何形式的数据,并且提供了可视化的管理功能,便于操作。

3)云函数

云函数是在云端(服务器端)运行的函数,开发者无须购买服务器,仅需在开发者工具内进行编写,然后部署到云端,通过小程序内提供的专用API进行调用。云函数的写法类似于JavaScript,代码运行在云端的Node.js 中,可在云函数中通过使用云函数后端SDK提供的数据库和存储API对数据库和存储进行操作。

微信小程序和云开发之间的逻辑关系如图2所示。

3 软件相关设计

3.1 小程序总体结构设计

小程序前端主要由“首页”“商品”“信息”“我的”四个页面组成,当启动“助宠”小程序后,用户默认进入首页,并根据是否管理员来决定是否显示特殊功能。

“首页”主要由宠物信息图片轮播图和热点推送文章组成;在“商品”页面中,用户可以浏览商品以及通过关键字进行商品或店铺的查询;在“信息”页面中,可以看到宠物科学饲养小知识、宠物病状的分析等,也可实现宠物相关信息的查询功能;在“我的”页面中,可以实现宠物领养小程序的跳转功能,也可以联系客服进行咨询或是意见反馈。小程序总体结构框架如图3所示。

3.2 数据库设计

根据小程序所需实现的功能,在数据库中设计了5个集合:root、swiper、shop、skill、message来存储相关的数据,每个集合都由若干个字段组成,5个集合具体说明如下:

root:存放管理员账户信息,用于判断是否显示特殊功能。

swiper:存放首页中的轮播图片信息,用于轮播图的显示。

shop:存放商品及店铺相关的信息,用于显示和查询。

skill:存放宠物饲养相关的信息,用于显示和查询。

message:存放首页推送文章信息,用于显示文章。

4 主要功能实现

4.1 小程序的目录结构和页面

将不同的文件存放在不同的文件夹中,可以便于项目的管理,如图4所示。根据需求分析,设计对应的页面,如表2所示。

4.2 数据库、云函数

使用微信开发者工具创建云函数并部署,通过如下代码在小程序端进行调用来获取用户OpenID以及对数据库进行删除、查询、修改等操作。

wx.cloud.callFunction({

name: 'XXX',

data: {

value: X,

}

}).then(res => {

}).catch(err => {

})

通过云开发控制台手动创建数据库,并通过代码const db = wx.cloud.database( )来获取数据库的引用,对其进行条件查询、删除、修改操作。

4.3 判断管理员权限

当用户进入“助宠”小程序时,小程序会调用云函数获取用户的OpenID,通过对数据库中root集合中的记录进行查询,若此用户的OpenID在集合中,则断定为管理员,会显示特定的功能按钮,否则不显示。

4.4 查询功能

点击“商品”和“信息”界面中的搜索框可以跳转到信息查询界面,输入要查询内容的关键字,可以在页面中出现多条符合条件的記录,任意点击一条记录可以查看到记录的详细信息。查询功能的实现原理如下:首先将从输入框中获取的值作为关键字,将关键字作为参数调用云函数,云函数通过云开发中的模糊查询来找到符合条件的记录,其中模糊查询是通过构造正则表达式来实现的,关键代码如图5所示。

5 结束语

采用云开发实现的“助宠”小程序,给宠物主提供了一个固定的线上宠物信息获取平台。宠物主可通过该平台快速定位到所需求的信息,了解到宠物相关的知识。该平台旨在于普及宠物健康知识、分享宠物疾病的预防和治疗手段,希望能让更多的人了解到、关注到宠物的健康问题,让更多的宠物可以拥有健康快乐的生活。

参考文献:

[1] 狗民网.2020年中国宠物行业白皮书[EB/OL].(2021-01-25)[2021-11-07].https://www.shangyexinzhi.com/article/3253029.html.

[2] 董发志,丁洪伟,袁洪,等.基于微信平台的宠物喂养远程控制系统的设计实现[J].实验科学与技术,2019,17(2):1-5.

[3] 葛昊东.新零售模式社区宠物店服务系统设计[J].电子技术与软件工程,2020(4):60-61.

[4] 胡名睿,郝晓健,王昊辰,等.基于互联网+及云存储的宠物自动喂食嵌入式系统[J].电子制作,2021(11):64-67.

[5] 叶军,华旭奋,孙晓艳.基于用户体验的互联网+宠物管理系统设计与实现[J].科技创新与应用,2020(31):87-89.

[6] 赵智敏,李俊峤,谢涛,等.基于微信小程序云开发的客观题练习程序设计与开发[J].电子世界,2020(16):66-67.

[7] 小程序云开发参考文档[EB/OL].[2021-11-07].https://developers.weixin.qq.com/miniprogram/dev/wxcl-oud/basis/getting-started.html.

[8] 微信开放文档[EB/OL].[2021-11-07].https://developers.weixin.qq.com/miniprogram/dev/framework/quickstart.

[9] 李哲,周灵.微信小程序的架构与开发浅析[J].福建电脑,2019,35(12):66-69.

[10] 张利香,甘发旺,薄建国.基于微信小程序与云开发的成绩查询系统实现[J].内蒙古科技与经济,2019(13):59-60.

收稿日期:2022-03-09

基金项目:安徽省高等学校省级质量工程项目(项目编号:2020kfkc434、2020jyxm1572、2020xsxxkc377);安徽省教学示范课(项目编号:1940);安徽省高等学校省级质量工程项目省级教学团队(项目编号:2019jxtd090);国家级大学生创新创业训练计划项目(项目编号:202114098027;合肥师范学院校级科研项目(项目编号:2021KJZD15)

作者简介:殷凤梅(1981—),女,安徽合肥人,副教授,主要研究方向为信息安全。

猜你喜欢

微信小程序
基于微信小程序的停车位租赁平台设计与实现
微信小程序在高校英语教学中的应用
微信小程序对大学生使用APP意愿的影响
基于微信小程序的点餐系统
基于Webpy+Apache HTTP Server 微信小程序架构搭建研究
基于CNKI的微信小程序研究文献计量分析
当图书馆遇上微信小程序