殷鳳梅 靜育玉
摘要:為了方便寵物主獲取飼養(yǎng)寵物的科學(xué)知識,開發(fā)了一個基于微信小程序的助寵系統(tǒng)。該系統(tǒng)使用微信提供的MINA框架,選用JSON數(shù)據(jù)庫,利用云開發(fā)控制臺手動創(chuàng)建并引用數(shù)據(jù)庫,通過用戶的OpenID判斷用戶的身份權(quán)限,構(gòu)造正則表達式實現(xiàn)模糊查詢。使用該系統(tǒng)不僅能獲取飼養(yǎng)寵物的科學(xué)小知識,還能查詢與寵物相關(guān)的信息,這樣可以讓更多的家庭愛護好寵物,讓更多的寵物健康快樂地生活。
關(guān)鍵詞:微信小程序;云開發(fā);信息查詢;寵物健康
中圖分類號:TP311.1? ? ? 文獻標(biāo)識碼:A
文章編號:1009-3044(2022)14-0037-03
1 引言
據(jù)《2020年中國寵物行業(yè)白皮書》(消費報告)統(tǒng)計,2020年全國城鎮(zhèn)的貓犬?dāng)?shù)量已多于一億只,相對2019年增長了1.7%,隨著寵物數(shù)量的不斷增長,寵物在家庭中的身份地位也在提高,寵主們也越來越多地關(guān)注自家的寵物,然而給寵物看病貴已成為2020年最大的養(yǎng)寵痛點[1]。目前寵物醫(yī)療成本高,短時間內(nèi)難以降低,但是如果人們能在日常的生活中更加科學(xué)健康地飼養(yǎng)寵物,也許就能減小寵物患病的概率。通過傳統(tǒng)的線下咨詢方式很難及時、高效地獲取寵物相關(guān)知識。隨著“互聯(lián)網(wǎng)+”的快速發(fā)展,飼養(yǎng)寵物的服務(wù)系統(tǒng)和網(wǎng)絡(luò)平臺逐漸增多[2-5]。在這些系統(tǒng)和平臺中,很少有涉及寵物心理健康方面的知識。但是寵物也會有自己的心理情緒,若不及時地發(fā)現(xiàn)和處理,寵物可能會產(chǎn)生嚴(yán)重的心理問題,如:抑郁癥、分離焦慮癥、狂躁癥等,甚至?xí)?dǎo)致嚴(yán)重的生理疾病。基于此,設(shè)計“助寵”小程序,給寵主提供一個獲取養(yǎng)寵知識干貨的平臺,讓寵物主快速精準(zhǔn)地獲取與寵物健康相關(guān)的信息,滿足寵物主對寵物生理健康、心理健康等知識的渴求。
小程序依附于微信平臺,使用時用戶只需采用掃碼等方式打開,無須下載軟件;退出時可自動進行隱藏,無須其他操作[6]。微信聯(lián)合騰訊云提供的云開發(fā)服務(wù),采用了Serverless開發(fā)模式,涵蓋了云函數(shù)、數(shù)據(jù)庫、CDN (Content Delivery Network,內(nèi)容分發(fā)網(wǎng)絡(luò))、存儲和云調(diào)用能力。開發(fā)者無須擔(dān)心服務(wù)器購買、環(huán)境搭建、域名備案、上線運維等問題[7],極大地弱化了開發(fā)難度。
“助寵”小程序使用微信小程序提供的MINA (Multipurpose Infrastructure for Network Applications) 框架進行開發(fā)。前端采用 WXML (WeiXin Markup Language)、WXSS (WeiXin Style Sheets)、JavaScript語言和JSON(JavaScript Object Notation)數(shù)據(jù)格式,后端采用云開發(fā)技術(shù),通過云數(shù)據(jù)庫實現(xiàn)信息的集中存儲和管理,借助云存儲實現(xiàn)圖片的存儲,使用云函數(shù)實現(xiàn)數(shù)據(jù)庫的訪問。
2 相關(guān)技術(shù)介紹
2.1 微信小程序
1)代碼構(gòu)成
小程序代碼由JSON配置文件(.json后綴)、WXML模板文件(.wxml后綴)、WXSS樣式文件(.wxss后綴)以及JS腳本邏輯文件(.js后綴)構(gòu)成。JSON是一種數(shù)據(jù)格式,起到靜態(tài)配置的作用。配置文件通常分:小程序配置(app.json)、工具配置(project. config.json)和頁面配置(page.json)。WXML模板類似HTML,用來描述某個頁面的結(jié)構(gòu),WXSS樣式用于描述WXML中的組件樣式,JS交互邏輯用來實現(xiàn)用戶的交互功能,即處理事件的響應(yīng)[8]。
2)MINA框架
MINA框架是一個可以及時響應(yīng)的數(shù)據(jù)綁定系統(tǒng),系統(tǒng)分為邏輯層(App Service)和視圖層(View),如圖1所示。邏輯層基于JavaScript來實現(xiàn),視圖層由WXML和WXSS來描述。開發(fā)者僅需關(guān)注數(shù)據(jù)和邏輯,視圖層和邏輯層之間的交互通過數(shù)據(jù)傳輸和事件系統(tǒng)來實現(xiàn)。MINA框架不僅提供了基礎(chǔ)的組件以及豐富的微信原生應(yīng)用程序接口API(Application Programming Interface),還對整個小程序的頁面路由進行管理[9]。因此,開發(fā)者使用MINA框架時,不用去處理線程并發(fā)與底層I/O等相對復(fù)雜的工作,可以將更多關(guān)注點放到業(yè)務(wù)設(shè)計和開發(fā)中去[10]。
2.2 云開發(fā)
1)數(shù)據(jù)庫
云開發(fā)提供了既可在小程序端操作,也可在云函數(shù)中讀寫的JSON數(shù)據(jù)庫。數(shù)據(jù)庫中的每條記錄都可以看作是一個JSON格式的對象,每個數(shù)據(jù)庫中可存在多個JSON數(shù)組,每個數(shù)組認(rèn)為是一個集合。JSON數(shù)據(jù)庫與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫的概念對應(yīng)關(guān)系如表1所示。
數(shù)據(jù)庫API提供了增、刪、改、查的功能。開發(fā)者在小程序內(nèi)可直接調(diào)用小程序端API去處理數(shù)據(jù)庫中的非敏感數(shù)據(jù),也可在云函數(shù)里通過調(diào)用服務(wù)端API對數(shù)據(jù)庫進行更加私密安全的操作。
2)存儲
云開發(fā)提供了一塊開發(fā)者可以在小程序端和云函數(shù)端使用API進行存儲操作的空間。云存儲提供了高可用、高穩(wěn)定、強安全的云端存儲服務(wù),可以存儲任意數(shù)量、任何形式的數(shù)據(jù),并且提供了可視化的管理功能,便于操作。
3)云函數(shù)
云函數(shù)是在云端(服務(wù)器端)運行的函數(shù),開發(fā)者無須購買服務(wù)器,僅需在開發(fā)者工具內(nèi)進行編寫,然后部署到云端,通過小程序內(nèi)提供的專用API進行調(diào)用。云函數(shù)的寫法類似于JavaScript,代碼運行在云端的Node.js 中,可在云函數(shù)中通過使用云函數(shù)后端SDK提供的數(shù)據(jù)庫和存儲API對數(shù)據(jù)庫和存儲進行操作。
微信小程序和云開發(fā)之間的邏輯關(guān)系如圖2所示。
3 軟件相關(guān)設(shè)計
3.1 小程序總體結(jié)構(gòu)設(shè)計
小程序前端主要由“首頁”“商品”“信息”“我的”四個頁面組成,當(dāng)啟動“助寵”小程序后,用戶默認(rèn)進入首頁,并根據(jù)是否管理員來決定是否顯示特殊功能。
“首頁”主要由寵物信息圖片輪播圖和熱點推送文章組成;在“商品”頁面中,用戶可以瀏覽商品以及通過關(guān)鍵字進行商品或店鋪的查詢;在“信息”頁面中,可以看到寵物科學(xué)飼養(yǎng)小知識、寵物病狀的分析等,也可實現(xiàn)寵物相關(guān)信息的查詢功能;在“我的”頁面中,可以實現(xiàn)寵物領(lǐng)養(yǎng)小程序的跳轉(zhuǎn)功能,也可以聯(lián)系客服進行咨詢或是意見反饋。小程序總體結(jié)構(gòu)框架如圖3所示。
3.2 數(shù)據(jù)庫設(shè)計
根據(jù)小程序所需實現(xiàn)的功能,在數(shù)據(jù)庫中設(shè)計了5個集合:root、swiper、shop、skill、message來存儲相關(guān)的數(shù)據(jù),每個集合都由若干個字段組成,5個集合具體說明如下:
root:存放管理員賬戶信息,用于判斷是否顯示特殊功能。
swiper:存放首頁中的輪播圖片信息,用于輪播圖的顯示。
shop:存放商品及店鋪相關(guān)的信息,用于顯示和查詢。
skill:存放寵物飼養(yǎng)相關(guān)的信息,用于顯示和查詢。
message:存放首頁推送文章信息,用于顯示文章。
4 主要功能實現(xiàn)
4.1 小程序的目錄結(jié)構(gòu)和頁面
將不同的文件存放在不同的文件夾中,可以便于項目的管理,如圖4所示。根據(jù)需求分析,設(shè)計對應(yīng)的頁面,如表2所示。
4.2 數(shù)據(jù)庫、云函數(shù)
使用微信開發(fā)者工具創(chuàng)建云函數(shù)并部署,通過如下代碼在小程序端進行調(diào)用來獲取用戶OpenID以及對數(shù)據(jù)庫進行刪除、查詢、修改等操作。
wx.cloud.callFunction({
name: 'XXX',
data: {
value: X,
}
}).then(res => {
…
}).catch(err => {
…
})
通過云開發(fā)控制臺手動創(chuàng)建數(shù)據(jù)庫,并通過代碼const db = wx.cloud.database( )來獲取數(shù)據(jù)庫的引用,對其進行條件查詢、刪除、修改操作。
4.3 判斷管理員權(quán)限
當(dāng)用戶進入“助寵”小程序時,小程序會調(diào)用云函數(shù)獲取用戶的OpenID,通過對數(shù)據(jù)庫中root集合中的記錄進行查詢,若此用戶的OpenID在集合中,則斷定為管理員,會顯示特定的功能按鈕,否則不顯示。
4.4 查詢功能
點擊“商品”和“信息”界面中的搜索框可以跳轉(zhuǎn)到信息查詢界面,輸入要查詢內(nèi)容的關(guān)鍵字,可以在頁面中出現(xiàn)多條符合條件的記錄,任意點擊一條記錄可以查看到記錄的詳細信息。查詢功能的實現(xiàn)原理如下:首先將從輸入框中獲取的值作為關(guān)鍵字,將關(guān)鍵字作為參數(shù)調(diào)用云函數(shù),云函數(shù)通過云開發(fā)中的模糊查詢來找到符合條件的記錄,其中模糊查詢是通過構(gòu)造正則表達式來實現(xiàn)的,關(guān)鍵代碼如圖5所示。
5 結(jié)束語
采用云開發(fā)實現(xiàn)的“助寵”小程序,給寵物主提供了一個固定的線上寵物信息獲取平臺。寵物主可通過該平臺快速定位到所需求的信息,了解到寵物相關(guān)的知識。該平臺旨在于普及寵物健康知識、分享寵物疾病的預(yù)防和治療手段,希望能讓更多的人了解到、關(guān)注到寵物的健康問題,讓更多的寵物可以擁有健康快樂的生活。
參考文獻:
[1] 狗民網(wǎng).2020年中國寵物行業(yè)白皮書[EB/OL].(2021-01-25)[2021-11-07].https://www.shangyexinzhi.com/article/3253029.html.
[2] 董發(fā)志,丁洪偉,袁洪,等.基于微信平臺的寵物喂養(yǎng)遠程控制系統(tǒng)的設(shè)計實現(xiàn)[J].實驗科學(xué)與技術(shù),2019,17(2):1-5.
[3] 葛昊東.新零售模式社區(qū)寵物店服務(wù)系統(tǒng)設(shè)計[J].電子技術(shù)與軟件工程,2020(4):60-61.
[4] 胡名睿,郝曉健,王昊辰,等.基于互聯(lián)網(wǎng)+及云存儲的寵物自動喂食嵌入式系統(tǒng)[J].電子制作,2021(11):64-67.
[5] 葉軍,華旭奮,孫曉艷.基于用戶體驗的互聯(lián)網(wǎng)+寵物管理系統(tǒng)設(shè)計與實現(xiàn)[J].科技創(chuàng)新與應(yīng)用,2020(31):87-89.
[6] 趙智敏,李俊嶠,謝濤,等.基于微信小程序云開發(fā)的客觀題練習(xí)程序設(shè)計與開發(fā)[J].電子世界,2020(16):66-67.
[7] 小程序云開發(fā)參考文檔[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] 李哲,周靈.微信小程序的架構(gòu)與開發(fā)淺析[J].福建電腦,2019,35(12):66-69.
[10] 張利香,甘發(fā)旺,薄建國.基于微信小程序與云開發(fā)的成績查詢系統(tǒng)實現(xiàn)[J].內(nèi)蒙古科技與經(jīng)濟,2019(13):59-60.
收稿日期:2022-03-09
基金項目:安徽省高等學(xué)校省級質(zhì)量工程項目(項目編號:2020kfkc434、2020jyxm1572、2020xsxxkc377);安徽省教學(xué)示范課(項目編號:1940);安徽省高等學(xué)校省級質(zhì)量工程項目省級教學(xué)團隊(項目編號:2019jxtd090);國家級大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃項目(項目編號:202114098027;合肥師范學(xué)院校級科研項目(項目編號:2021KJZD15)
作者簡介:殷鳳梅(1981—),女,安徽合肥人,副教授,主要研究方向為信息安全。