朱曉陽 劉苑如 范仲言



摘要:為了實現在線學習平臺的高效利用,該文設計并實現了可供多個前端平臺使用的后端系統。學習平臺采用前后端分離開發方式,其中后端系統的設計采用Node.js腳本語言與MySQL數據庫技術,可以與APP或者網頁端等前端系統通過JSON格式接口進行信息交互。系統設計包含總體設計,業務邏輯設計和數據庫等設計模塊。經過系統實現與測試,后端系統可以正常提供服務,為學習平臺的搭建提供一種后端解決方案。
關鍵詞:Node.js;學習平臺;后端系統;MySQL;JSON
中圖分類號:TP311.52 ? ? ?文獻標識碼:A
文章編號:1009-3044(2019)13-0116-03
Abstract: In order to make efficient use of online learning platform, this paper designs and implements a background system which can be used by many foreground platforms. The learning platform development uses the method of separation of front and back development. The design of background system adopts Node.js script language and MySQL database technology. It can interact with foreground platforms such as APP or web page through JSON format interface. The system design includes general design, business logic design and database design modules. After system implementation and testing, the background system can provide normal services, and provide a practical scheme of background system for the construction of learning platform.
Key words: Node.js; learning platform; background system; MySQL; JSON
1 背景
隨著信息網絡的普及,學生的學習途徑不僅僅局限于課堂上。學生通過互聯網可以在電腦端、手機端來實現學習資源的獲取。針對多平臺學習的需求,同時保持各個平臺之間學習進度的統一性,需要開發一項可以多個前端平臺可以共用的后端系統[1],提供全新的學習平臺服務。
本后端系統的實現是一款基于Node.js腳本語言[2]的系統,可供多個前臺系統使用,在同一后臺情況下,多平臺可以使用同一賬號體系登錄系統,同時學生的學習進度在多平臺直接保持同步,實現了一個后端系統,多個前端平臺共用[3]的效果,提高了系統的使用率。
2 在線學習平臺的主要技術
在線學習平臺的實現離不開服務器后端開發技術與數據庫技術。本系統設計過程中采用服務器后端開發技術是Node.js,數據庫技術采用的MySQL[4]。
Node.js是用基于Chrome JavaScript的一種運行環境,由于它經常用來構建響應快速與易于擴展的網絡應用程序。所以Node.js作為一個非常流行的框架,適合事件驅動和異步編程,能夠提高服務器后端系統的性能與優秀的負載能力,適合作為為前端系統提供接口的語言。
MySQL作為數據存儲和管理的數據庫系統,由于其速度快、體積小、總體擁有成本低,尤其是開源這一特點,一般中小型網站的后臺數據庫開發都選擇 MySQL。作為一種關系型數據庫,支持多線程Thread,多用戶以及支持規范的SQL數據庫語言。
3 系統總體設計
該學習平臺分為信息服務和后臺數據管理兩部分:信息服務部分向學生提供教學視頻同時采集學生信息和相關學習記錄;后臺數據管理系統實現用戶的權限和用戶的信息管理兩部分。系統具體模塊如圖 1 所示,包含顯示層、業務層和數據訪問層[5],顯示層是用戶與平臺的接口,負責頁面顯示,處理不同角色接收的信息和角色的頁面;業務層處理學生與教師的數據業務邏輯操作,包括資源管理、用戶管理和統計分析等;數據訪問層用于實現用戶信息的查詢、增加、修改和刪除等功能。
3.1 角色模塊設計
該系統有3大模塊,分別是學生、教師以及管理員,管理員主要負責信息管理和設置權限,對學生、教師分配不同的平臺使用權限。同時根據學號的匹配將教師與學生之間連接。學生主要使用學習中心和個人中心來完成自己的學習任務。學習中心包含教學視頻;個人中心主要用于顯示個人需要完成的學習任務和學習進度等。教師主要訪問課程和學生模塊。任課教師通過課程模塊查看代課信息,任課教師、導師通過學生管理模塊查看學生的課程學習情況以及其他相關聯的記錄,給出相應的指導或建議。系統管理員可以通過信息管理模塊了解師生交流互動情況同時利用數據分析結果調整服務。
3.2 業務邏輯設計
學生客戶端,作為登錄本學習平臺的重要入口,界面設計簡潔為主,擁有基礎的用戶名密碼輸入框和登陸與注冊的按鈕,充分考慮到用戶注冊的便利性。
教師端側重于教師上傳學習資料與統計學生的學習行為,在教師端設置了課程模塊,課程模塊中設置有上傳接口,后端系統的設計包含上傳學習視頻與學習步驟,學習作業的接口。
管理員的權限最高,它可以新建、修改、刪除用戶和用戶信息,授權用戶登錄系統。學生能查看修改個人信息,查看學習中心內容,教師能查看和修改個人信息、查看相關學生提交的課程記錄,給出意見或建議。所有數據的更改都經過后臺的數據庫。具體業務邏輯關系如圖 2所示。管理員位于系統的中心位置,學生與教師賬號登錄之后獲取不同的權限,兩者之間的數據交互通過后臺數據庫來完成,而管理員對整體數據擁有完全權限,完成分配角色權限的功能與信息交互的功能,進而三者之間可以緊密關聯業務,是此系統的業務邏輯關鍵部分。
4 后端系統的實現
4.1 系統整體架構與Node.js服務配置實現
該系統采用Node.js 語言開發,采用MySQL數據庫。Node.js使用Visual Studio Code1.32作為主要開發工具來編寫腳本語言。數據庫MySQL安裝在CentOS服務器中,并且數據庫架設在單獨服務器的方式提供數據服務,這樣可以保證數據庫服務的穩定獨立運行,同時也為未來后端服務的可擴展性提供保障,前后端的整體架構如圖3所示。
Node.js 服務利用框架來實現開發,采用MVC 的設計模式,本后端系統借助 Express 框架實現[6]。在 Express 的作用下建立一個項目,之后對項目依賴性進行評估,并結合 MVC 架構,model 層依賴于 Modelproxy,controller 層依賴于 Express,view層依賴于 Handlebars。在package.json 中進行配置,并全面執行npm install,自動安裝對應依賴,當項目全部配置完成后,執行命令npm start可以啟動后端服務。
4.2 數據庫服務器實現
為了保證數據的安全性,對外開放的Node.js服務器僅通過內網鏈接數據庫服務器,在內網服務器中安裝CentOS7,并在安裝MySQL組件之后,完成MySQL初始化任務,最后通過進入到MySQL的命令行界面輸入SQL語句創建后端系統相關數據表,以用戶信息表為例的創建語句核心代碼如下:
CREATE TABLE `user`. ?(
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NULL,
`age` tinyint(4) NULL,
`class` varchar(50) NULL,
PRIMARY KEY (`id`)
);
4.3 數據庫服務器連接實現
本系統是基于Node.js和MySQL運行實現的,在Node.js服務器中需要通過內網IP地址鏈接MySQL服務器,具體的Node.js連接數據庫服務器的核心代碼如下:
module.exports = {
mysql: {
host: '192.168.80.124',
user: 'remote',
password: '$#%!.coM',
database:'leandb',
port: 3306
}
4.4 API數據接口實現
利用Node.js中的Express框架實現API接口[7],在接口中需求可以get與post數據,并且多平臺直接以JSON[8]數據格式進行交互,添加用戶數據與修改用戶數據的路由代碼如下:
router.get('/addUser', function(req, res, next) {
userDao.add(req, res, next);
});
router.post('/updateUser', function(req, res, next) {
userDao.update(req, res, next);
});
Node.js服務器的IP地址為192.168.80.88,在瀏覽器中進行測試如圖4所示,通過get方法傳遞name與age的值成功把值添加到數據庫服務器。
Node.js服務器同時實現了API接口的POST方法,在火狐FireFox瀏覽器中進行測試,利用的Hackbar插件進行post數據實現了API接口的更新功能,測試結果如圖5所示。
5 結論
為解決高校學生能夠多平臺學習教師在線教學資源,實現在線資源的高效利用。學習平臺的后端系統采用Node.js中成熟的Express框架實現JSON數據與多平臺客戶端交互的功能。后端系統設計包含總體設計,業務邏輯設計和數據庫等設計。系統的實現部分詳細闡述了后端的數據庫實現與API接口實現,最后通過系統測試,后端系統可以正常運行,為在線學習平臺的搭建提供一種后端解決方案。
參考文獻:
[1] 孫娉娉, 李新, 史廣軍. 基于前后端分離的內容管理系統[J]. 科研信息化技術與應用, 2016, 7(4): 70-75.
[2] 駱文亮. Node.js服務器技術初探[J]. 無線互聯科技, 2014(3): 227-227.
[3] 張艷, 吳曉翔. 基于Node.js的前端教程網站設計與開發[J]. 福建電腦, 2018(9): 37-38.
[4] 基于Node.js的智慧農業數據采集平臺的設計與實現[D]. 杭州: 浙江理工大學, 2018.
[5] 基于nodejs的微博系統的設計與實現[D]. 長沙: 電子科技大學, 2014.
[6] 王伶俐, 張傳國. 基于NodeJS+Express框架的輕應用定制平臺的設計與實現[J]. 計算機科學, 2017, 44(S2): 606-609.
[7] 潘從祥, 蔣樂天. 基于Node.js的TurtleBot機器人JavaScript API設計[J]. 信息技術, 2018(3).
[8] Bonetta D, Brantner M. FAD.js: fast JSON data access using JIT-based speculative optimizations[J]. Proceedings of the Vldb Endowment, 2017, 10(12): 1778-1789.
【通聯編輯:謝媛媛】