基于Node.js的学习平台后端系统设计与实现
2019-07-08朱晓阳刘苑如范仲言
朱晓阳 刘苑如 范仲言
摘要:为了实现在线学习平台的高效利用,该文设计并实现了可供多个前端平台使用的后端系统。学习平台采用前后端分离开发方式,其中后端系统的设计采用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.
【通联编辑:谢媛媛】