陳明雪 趙勇 周小麗 鄧思風



摘 ?要:隨著高職院校的持續擴招,圖書館藏書數量不斷增加,這對圖書的管理提出了越來越高的要求。通過圖書管理設計系統,可以提高圖書管理水平,實現圖書的添加、刪除、修改等功能。文章采用Node.js技術中的模塊化思想完成圖書管理系統的功能設計,應用Bootstrap框架完成頁面設計,并從技術介紹、環境搭建、系統功能、數據庫設計等幾個方面對圖書管理系統進行設計與研究。
關鍵詞:圖書管理系統;Node.js;Bootstrap
中圖分類號:TP311 ? ? ? ?文獻標識碼:A文章編號:2096-4706(2021)24-0012-04
Abstract: With the durative expansion of higher vocational colleges and ever-increasing number of library books, the management requirements of books are getting higher and higher. Through the book management system,, we can improve the level of book management and realize the functions of adding, deleting and modifying books. This paper adopts the modular idea in Node.js technology to complete the functional design of the book management system, applies the Bootstrap framework to complete the page design, and designs and researches the book management system from the aspects of technology introduction, environment construction, system function and database design.
Keywords: book management system; Node.js; Bootstrap
0 ?引 ?言
近年來,隨著各大高校學生的擴招,學校的圖書館規模擴大,圖書管理存在越來越多的問題,如學生借閱過程中不知道藏書是否存在,在圖書館中進行尋找是比較麻煩的;或者需要獲取一些電子版的圖書相關資料時,圖書館卻沒有。這時可以設計一款圖書管理系統對圖書進行管理。本文采用Node.js技術和Bootstrap框架設計圖書管理系統,在瀏覽器端可對圖書管理系統進行登錄、注冊、添加、刪除、修改、查詢、上傳、下載操作。
1 ?設計過程
1.1 ?相關技術介紹
在國內開發者大多數采用JavaWeb、JavaEE、PHP、C++等技術來進行圖書管理系統的開發,以JavaEE為例,現從采用的框架或模塊、安裝環境、數據庫連接、學習興趣、應用優勢等幾個方面與Node.js技術進行對比闡述,如表1所示。
本文采用Node.js技術和Bootstrap框架設計圖書管理系統,在瀏覽器端對圖書管理系統進行登錄、注冊、添加、刪除、修改、查詢、上傳、下載操作,將發生改變的數據發送給服務器端,再由服務端反饋給數據庫。首先使用Node.js模塊化思想進行開發,把一個圖書管理系統具體到某一個具體功能點(如添加功能點或者刪除功能點),把每一個功能點看做一個模塊,然后通過相應的規則把這些小的模塊組合到一起,構成模塊化系統;這種思想的優勢之處在于,當某一個功能模塊發生改變或者出現問題時不影響其他模塊的使用,可實現高效開發、低成本維護。其次采用Node.js中的http模塊實現瀏覽器客戶端和服務器之間的連接,通過http模塊提供的listening方法可以對客戶端瀏覽器進行監聽,客戶端瀏覽器和服務端之間可以相互發送數據,一旦操作客戶端瀏覽器發生數據改變,這些數據就會傳遞給服務端,服務端再將數據反饋給數據庫,使用http模塊提供的request方法可以獲取客戶端發送的數據。其次使用Express框架、fs模塊、path模塊、art-template模塊、formidable模塊、url模塊可實現登錄、注冊、添加、刪除、修改、查詢、上傳、下載功能。
而Bootstrap框架提供了一些CSS布局、組件(如按鈕、下拉菜單、導航、Flex布局)、Javascript插件(如輪播圖、滾動監聽、模態框),便于圖書管理系統的前端頁面設計。
1.2 ?環境搭建
采用JavaEE需要服務器Tomcat8.0、Eclipse開發環境、數據庫Mysql5.5以上版本、谷歌或者火狐瀏覽器,系統環境搭建中需要準備Spring、SpringMVC、Mybatis的jar包和數據庫連接的jar包等,簡言之整個系統準備的jar包較多。
而Node.js和Bootstrap安裝環境較為簡單,只需要Node.js最新穩定版安裝包、Bootstrap版本4安裝包,Node.js中所用到的Express框架、formidable模塊、art-template模塊、http模塊、fs模塊、url模塊中前面三個需要使用前安裝,后面幾個在安裝好Node.js環境后可以直接使用,安裝時間很快但需要網絡情況較好。
1.3 ?數據庫設計
圖書管理系統主要設計的功能是登錄、注冊、添加、刪除、修改、查詢、上傳、下載,在此過程中涉及用戶信息表、圖書管理表。用戶信息表包含用戶名和密碼字段如表2所示;圖書管理表包含id、書名、主編、圖書相關資料、圖書封面等字段如表3所示。
1.4 ?系統功能
該圖書管理系統主要實現用戶的圖書登錄、注冊、添加、刪除、修改、查詢、上傳、下載功能。
用戶可以在該系統中進行賬號注冊、使用賬號進行登錄;當用戶需要尋找書籍時可以在該系統中進行查詢,在查詢圖書信息后也可下載該圖書的相關電子版資料;當圖書館購置新書時可將新書信息添加在該系統中以供查詢,在添加圖書信息時也可將圖書相關的電子版資料進行上傳;當書籍信息發生改變時,如有外借或者其他情況需要修改信息,可在該系統中進行修改;當圖書不在館中時可以將圖書信息刪除。
下面以圖書管理系統的添加模塊為例進行詳細的敘述。
1.4.1 ?添加功能實現流程
在圖書管理系統首頁中點擊添加圖書按鈕,進入添加頁面,添加頁面中可以添加書名、主編等圖書信息,同時可以上傳圖書相關學習資料、圖書封面信息,點擊提交按鈕,添加數據會發送到服務器,服務器將數據存放在數據庫進行保存,具體流程如圖1所示。
1.4.2 ?首頁頁面和添加頁面部分展示
首頁頁面的添加功能按鈕展示如圖2所示,在首頁頁面中通過點擊添加圖書信息按鈕進入到添加頁面。圖3為圖書管理系統添加頁面,添加頁面中可實現添加圖書字段信息,包含書名、主編信息、上傳圖書相關學習資料、上傳添加圖書封面信息,信息添加點擊提交,數據會保存在數據庫,在查詢功能中可查到該圖書信息。
1.4.3 ?實現首頁和添加頁面的部分展示代碼
下述代碼主要是實現首頁中的排版,包含Bootstrap框架的Flex布局、表單樣式、按鈕、文字樣式。同理添加頁面、修改頁面也按照Boootstrap框架提供的組件、CSS樣式、Javascript插件進行設計。
?//btn btn-success綠色按鈕樣式
1.4.4 ?實現添加功能的部分展示代碼
以下為部分代碼,module.exports.showAdd_POST 表示向外開放方法showAdd_POST,該方法為自定義方法,該方法中使用Node.js提供的formidable模塊實現添加功能、并將上傳的文件信息保存在數據庫,form.parse(request, function(err, fields, files)中使用fields保存瀏覽器客戶端發送的字段信息,files表示保存瀏覽器客戶端發送的文件信息。
module.exports.showAdd_POST = function(request, response) {
var form = new formidable.IncomingForm();
form.uploadDir = “./upload”;
form.parse(request, function(err, fields, files) {
var id = 0
music.forEach(function(item) {
if (item.id > id) {
id = item.id
}
})
music.push({
id: id + 1,
title: fields.title,
singer: fields.singer,
musicN: files.file.originalFilename,
poster: files.picture.originalFilename,
})
index(request, response)
})
}
1.5 ?軟件測試
在圖書管理系統設計完成后需進行測試,測試各功能模塊是否能夠運行,注冊中,用戶名不超過8個字符,密碼不能為純數字;注冊后測試賬號是否能夠正常登錄。登錄成功進入首頁后測試查詢、添加、刪除、修改功能是否能夠正常使用,在首頁中測試添加圖書按鈕是否會進行添加頁面,測試刪除能夠是否正常,點擊修改按鈕是否能進入修改頁面。同時在首頁中測試是否能夠正常下載文件資料,在添加和修改頁面中測試是否能夠上傳資料。根據不斷地測試和不斷的修改最終成功實現圖書管理系統的各部分功模塊,符合用戶的需求,可以正常使用。
在測試過程中也發現一些問題,如在查詢頁面點擊添加圖書按鈕無法進入到添加頁面,這是由于在對客戶端瀏覽器進行數據反饋判斷時,對url地址判斷錯誤或者http請求方式判斷錯誤,正確的代碼應該是if (request.url === “/add”&& request.method == “GET”)。
2 ?結果分析
使用Node.js的Express框架、formidable模塊、art-template模塊等可成功的實現圖書管理系統的登錄、注冊、添加、刪除、修改、查詢、上傳、下載等功能;在環境搭建過程中配置Node.js環境需注意要為Node.js配置環境變量;就各個實現功能而言,注冊功能實現了用戶名長度不超過7位,密碼不能為純數字;查詢功能中,成功的完成了對書名的查詢,在查詢功能中成功地實現了下載圖書的相關資料;添加功能中,成功實現了圖書信息的添加以及圖書資料的上傳;修改功能中,成功地實現了對圖書信息的修改;刪除功能中,成功實現了對圖書信息的刪除。
3 ?結 ?論
本文主要講述基于Node.js和Bootstrap兩種技術設計圖書管理系統,采用Node.js技術中的模塊化思想、Express框架、formidable模塊、fs模塊、Path模塊等完成設計,同時應用Bootstrap框架技術完成圖書管理系統的頁面設計。詳細介紹使用Node.js和Bootstrap進行設計的步驟,主要包含環境搭建、系統功能、數據庫設計,以及選擇其中一個添加功能模塊進行詳細敘述,同時將現有的一些技術如JavaEE與Node.js進行對比發現,對于學生來說,Node.js技術學習難度較低,安裝的環境也較為簡單,當頁面請求數據較大時,Node.js依然能夠輕松實現;而JavaEE技術引用的jar包較多,安裝環境較為復雜,很多時候由于安裝環境的問題導致即使代碼沒有問題依然無法運行,所以學生學習Node.js技術相對簡單,成就感較高,興趣較大。
參考文獻:
[1] 張慧娥.基于SPC與Bootstrap方法的高校教學質量評價的研究 [D].西安:西安電子科技大學,2011.
[2] 王訔杰,袁露,金托弟,等.基于vuejs和nodejs的換書軟件設計與實現 [J].電腦迷,2018(33):115.
[3] 李博洋.基于Node.js的分布式數字資源開放服務系統的設計與實現 [D].北京:北京郵電大學,2014.
[4] 黃揚子.基于NodeJS平臺搭建REST風格Web服務 [J].無線互聯科技,2015(16):57-59.
[5] 戎玫,張廣泉,劉艷.基于軟件體系結構和UML的圖書管理系統設計與實現 [J].計算機科學,2005(6):224-227.
[6] 王立萍.基于B/S的圖書管理系統的設計與開發 [J].承德民族師專學報,2004(2):27-28.
作者簡介:陳明雪(1991—),女,漢族,四川成都人,電子計算機工程師,助教,碩士研究生,研究方向:計算機技術。