APP下载

基于Node.JS 博客系统的设计与实现

2022-04-20薛格格张玉欣

电子设计工程 2022年7期
关键词:数据表博客管理员

闵 亮,薛格格,张玉欣,赵 彩

(西安交通大学城市学院计算机系,陕西西安 710018)

博客是一种由个人自己进行管理、可以不定期更新文章内容的网站,借助网络为载体,进而拉近人与人之间沟通的Internet 交流平台[1-2]。一个典型的博客融合了文本信息、图像、网站链接及其相关信息,可以让读者以互动的方式留下意见,是许多博客的重要要素。博客已经是社交网络的一部分,比较著名的有新浪、网易、CSDN 等博客[3-5]。随着时代和技术的发展,代码不断地迭代更新,博客不再局限于特定的语言程序,而是从一开始的C/C++到后来Java一枝独秀,再到PHP[6-8]强势崛起,再往后PHP 推出了超高性价比的WordPress、joomla 等。而目前博客所应用到的程序按语言分类主要有:ASP、PHP、CGI、JSP、Python 等[9-11]。文中系统基于Node.JS 开发平台进行博客系统搭建,并通过MVC 结构管理代码,从而对该领域进行探索,并对程序的性能分析进行评价[12-15]。与其他平台相比,Node.JS 可以使浏览器端脚本语言JavaScript 通过Chrome 的V8 引擎在服务器端完美运行,大大降低了开发的成本和时间。这也是Java、GO、Python 和其他后端语言在解决高并发性问题时面临的巨大挑战。基于这两个优良特性,文中选择Node.JS 来开发一个拥有更好性能、更友好的用户体验的博客系统[16]。

1 博客系统的开发需求

根据基于Node.JS 的博客系统的轻量化特性要求,该博客系统主要实现博客内容的发布、删除以及用户登录、注册、查看个人中心等功能。

1.1 系统功能需求

博客系统的具体功能需求如下:

1)前台主要实现功能

即用户登录、注册;发表、删除文章;分类管理;标签管理;友情链接等。

2)后台主要实现功能

包括网站基本内容管理、管理员修改密码、轮播图管理、管理员登录、友情链接管理、图片上传功能、添加公告等。

1.2 系统业务流程分析

在基于Node.JS 的博客系统中登录分为两种,分别是前台用户登录和后台管理员登录。系统根据用户的类型为其提供相应的功能,流程如图1所示。

图1 用户登录流程分析图

用户登录系统时首先需要判断所处界面为前台还是后台,即判断要登录的用户为前台用户还是后台管理员。

2 博客系统的后台管理模块

博客系统后台管理模块结构框图如图2 所示,其主要采用HTML+CSS 对模块页面进行渲染,采用AJAX 的数据传输方式,数据格式采用json 格式,通过数据库MySQL 对数据信息进行存储,使用ejs 工具包使HTML 页面与Node.JS 交互。

图2 后台管理模块结构框图

2.1 基本设置

基本设置模块使用MySQL 数据库对信息进行处理,主要功能包括修改网站基本信息、修改管理员密码以及添加公告。管理员在登陆后可以直接选择各个功能对页面进行更改。

1)修改网站信息功能

修改网站信息功能是在MySQL 数据库中建立infos 数据表,用来存储网站基本设置信息。数据结构为{id,title,logo,keywords,description,person,tel,address,copyright,email}。

2)修改管理员密码功能

修改管理员密码功能是在MySQL 数据库中建立admin 数据表,用来存储管理员信息。数据结构为{id,username,password,image}。为了确保管理员账户的安全性,修改管理员密码时将自动改为Hmac算法进行加密。

3)添加公告功能

添加公告功能是在MySQL 数据库中建立gods数据表,用来存储公告信息。数据结构为{id,url,image,description,sort,title}。

2.2 栏目管理

栏目是系统频道某一类内容的集合体,通过栏目可以将众多文章内容进行分类整合,并且用户根据自己查找的所需内容,可以直接在不同栏目中进行查找。栏目管理模块使用MySQL 数据库对信息进行处理,主要功能包括添加栏目、查看栏目、修改或删除栏目。

1)查看栏目功能

查看栏目功能与添加栏目功能共用MySQL 数据库中建立的category 数据表。主要功能是将添加的栏目在页面中显示出来,便于管理员进行观察,同时为修改或删除提供接口。

2)修改或删除栏目功能

栏目随着网站的需求会随时做出相应的改变,栏目的修改和删除主要功能是方便管理员随时更改栏目信息,所用的数据库表是category。

2.3 轮播管理

轮播管理模块使用MySQL 数据库对信息进行处理,主要功能包括添加轮播图、查看轮播图、修改或删除轮播图。

1)添加轮播图功能

添加轮播图功能是在MySQL 数据库中建立wheel 数据表,用来存储轮播图信息。数据结构为{id,url,image,description,sort,title}。

2)查看轮播图功能

查看轮播图功能与添加功能共用MySQL 数据库中建立的wheel 数据表。主要功能是将添加的轮播图在页面中显示出来,便于管理员进行观察,同时为修改或删除提供接口。

3)修改或删除轮播图功能

轮播图随着网站的需求会随时做出相应的改变,轮播图的修改和删除主要功能是方便管理员随时更改轮播图信息,所用的数据库表是wheel。

2.4 链接管理

链接管理模块使用MySQL 数据库对信息进行处理,主要功能包括添加链接、查看链接、修改或删除链接。

1)添加链接功能

添加链接功能在MySQL 数据库中建立links 数据表用来存储链接信息。数据结构为{id,catename,url,sort}。

2)查看链接功能

查看链接功能与添加功能共用MySQL 数据库中建立的links 数据表。主要功能是将添加的链接在页面中显示出来,便于管理员进行观察,同时为修改或删除提供接口。

3)修改或删除链接功能

链接随着网站的需求会随时做出相应的改变,链接的修改和删除主要功能是方便管理员随时更改链接信息,所用的数据库表是links。

2.5 热门标签管理

热门标签管理模块使用MySQL 数据库对信息进行处理,主要功能包括添加标签、查看标签、修改或删除标签。

1)添加标签功能

添加标签功能是在MySQL 数据库中建立tags 数据表,用来存储标签信息。数据结构为{ id,title,entitle,description,sort}。

2)查看标签功能

查看标签功能与添加功能共用MySQL 数据库中建立的tags 数据表。主要功能是将添加的标签在页面中显示出来,便于管理员进行观察,同时为修改或删除提供接口。

3)修改或删除标签功能

标签随着网站的需求会随时做出相应的改变,标签的修改和删除主要功能是方便管理员随时更改标签信息,所用的数据库表是tags。

2.6 后台接口的实现

基于Node.JS 的博客系统采用MVC 开发模式,数据访问层、业务逻辑层和表现层3 层可以完全分离。页面通过HTTP 请求与后台进行数据的交互,即前台页面与后台页面无论是通过AJAX 与Node.JS 进行异步交互,还是利用GET 表单提交,都要通过HTTP 请求,因而后台只需提供足够完成任务的接口,就可以实现系统功能。后台接口设计如表1 所示,根据所设置的路由进行数据访问、请求等。

表1 后台接口设计表

3 博客系统的前台界面模块

博客系统前台界面模块结构框图如图3 所示,实现了目前的主流功能,在主模块app.js 中通过session 进行数据传输。

图3 前台界面模块结构框图

1)用户登录和注册

用户登录和注册模块均采用单独页面,与主页进行区分,在数据库MySQL 中建立数据表users 来存储用户信息,数据结构为{id,username,password,nickname,avator}。

2)用户退出登录

用户退出登录模块主要是通过销毁session 来实现销毁用户信息。

3)用户查看博客

用户查看博客模块首先访问详情页localhost:3000/show.html,并通过<%=需要展示的内容%>对文章进行展示。

4)用户搜索博客

用户搜索博客模块通过在导航栏采用模糊查询功能进行搜索,在search.html 页面展示搜索结果。

4 博客系统的性能测试

4.1 测试方法及测试范围

系统基本功能的测试方法主要采用黑盒测试和白盒测试。白盒测试主要针对系统的结构和逻辑进行测试,黑盒测试根据软件已有功能,测试模块是否正常工作。前台功能测试范围如表2 所示,后台功能测试范围如表3 所示。

表2 前台功能测试范围

表3 后台功能测试范围

4.2 测试环境

服务器:阿里云推出的ECS服务器Windows Server 2008 标准版SP2 32 环境。

CPU:采用4 核Intel Xeon E5-2682 v4。

内存:DDR4 内存,内存大小为2 GB。

硬盘容量:40 GB。

带宽:1 M 带宽,VPC 专有网络。

浏览器:Chrome(谷歌)浏览器,IE9 以上运行。

操作系统:支持Windows10、Windows7、Windows XP。

4.3 性能测试

系统性能稳定、用户体验优劣均取决于后台的响应时间,而Node.JS 技术的最大特点是响应时间快。系统测试响应时间图如图4 所示,可以看出,系统单页页面的响应时间大约是260 ms,即响应时间是毫秒级的。

图4 系统测试响应时间图

该系统采用1 M 带宽的ECS 服务器,支持1000IP 同时进行访问,服务器响应时间大约为5 s,满足大部分网站的正常标准。

5 结论

文中基于Node.JS 的Web 框架Express 开发的中小型博客系统,主要实现了用户登录、用户注册、文章发表、文章删除、文章修改、查看文章、搜索文章、查看用户、轮播图管理、热门标签管理、分类管理、热门分布、友情链接管理、管理员账户登录、密码修改、图片上传等功能。主要采用黑盒测试技术对博客系统的性能进行了测试,测试结果表明,该博客系统可以根据需求展示相应的页面,较流畅地执行JavaScript 动效。该博客系统至少支持500 人同时在线并发,兼容IE8 及IE8 以上、Chrome 浏览器、火狐浏览器、360 浏览器、QQ 浏览器等常用浏览器,后台功能满足目前博客基本功能需求。博客系统采用AJAX 进行数据传输,具有较高的用户信息安全保障,可以自由地更换前台需要展示的内容。

猜你喜欢

数据表博客管理员
我是小小午餐管理员
我是图书管理员
我是图书管理员
湖北省新冠肺炎疫情数据表(2.26-3.25)
湖北省新冠肺炎疫情数据表
湖北省新冠肺炎疫情数据表
可疑的管理员
博客天下
QH165点焊机器人数据库开发技术
博客相册