基于Node.js和Bootstrap的图书管理系统设计与研究

2021-06-07 23:30陈明雪赵勇周小丽邓思风
现代信息科技 2021年24期

陈明雪 赵勇 周小丽 邓思风

摘  要:随着高职院校的持续扩招,图书馆藏书数量不断增加,这对图书的管理提出了越来越高的要求。通过图书管理设计系统,可以提高图书管理水平,实现图书的添加、删除、修改等功能。文章采用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插件进行设计。

 // 使用Flex布局排版,实现文字居底

图书管理系统
 // text-success绿色文字样式

首页
 // text-secondary灰色文字样式


 //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—),女,汉族,四川成都人,电子计算机工程师,助教,硕士研究生,研究方向:计算机技术。