殷鳳梅 靜育玉







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