当前位置:首页 期刊杂志

基于Node.js快速构建机房进出记录管理平台

时间:2024-07-28

戴鹏程 徐满龙 国家计算机网络应急技术处理协调中心江西分中心 南昌市 330038

0 引言

近年来,随着通信和互联网的快速发展,各个单位的机房数量和设备数量增长迅速,很多企业和厂商成立信息系统维护部门进行机房维护工作。机房管理工作主要包括动力环境维护检查、网络设备厂商定期巡检、信息系统工程建设和日常故障维护,对非机房管理人员产生的机房进出登记情况难以控制和统计,如何对机房进出人员高效的管理是机房管理人员所面临的痛点[1]。

1 需求分析

目前机房进出通过文档记录,来访人员往往字迹潦草难以辨认,同时机房管理人员在繁忙情况下,难以对来访人员登记进行严格督促,不便于对机房的规范化管理。此外,碎片化的文档记录难以形成可分析和统计分析,管理者无法从杂乱的文档中高效快速掌握机房出入情况,基于此,分析出机房进出记录管理平台实际需求如下:

(1)来访用户

外来机房巡检和维护人员为来访用户记录,对于日常经常性合作的施工人员进行信息提前录入机制,录入的信息包括用户姓名、所属单位、用户身份证号码、联系电话等信息。

(2)机房访问记录

用户在机房进行巡检、维护或者施工前,需要在计算机终端进行信息的录入,通过信息化管理,机房管理人员可以清晰明了的对维护信息进行统计和管理。

(3)机房访问记录Word打印和信息统计

对于用户访问机房的记录信息可以对具体信息打印成文档,便于信息的存储和备份,对于打印出来的Word文档只需要进行签字操作,其他信息都由服务端自动生成,针对日常维护产生的记录,机房管理人员需要对信息进行可视化图表统计。

2 系统设计

2.1 总体设计

基于Egg.js构建的机房进出记录管理平台三层结构由软件开发的经典三层接口,由上到下分别为应用层、服务端、和数据库层。用户层是对系统界面的展示,服务层是服务接口的实现,为应用层提供服务,数据库是对信息进行存储,为服务层提供数据支撑。

图1 机房进出记录管理平台总计框架

2.2 数据库设计

通过对机房进出记录管理平台的需求,可以分析出此平台的实体包括来访用户、所属单位、访问日志。和机房管理人员等,具体数据库E-R图如图2所示。

图2 数据库设计

3 系统实现

3.1 Node.js开发框架Egg.js

目前应用系统的主流开发语言有Java、PHP、Python和JavaSrcipt等,基于快速开发和部署的需求,JavaSrcipt和MongoDB的全栈开发模式是很多开发者的理想选择,前端使用JavaSrcipt进行动态控制,后端使用Node.js进行服务端开发,前端后端通过JSON进行数据完美对接。JavaScript事件驱动的特性使其具有开发高性能后端系统的能力,随着Node.js近些年来的爆发式发展,主流的基于Node.js的框架也不断发展,有基于事件回调的Express到基于Generator和ES5 的Koa,再到基于ES6的K oa2,框架处理问题的方式不断优化,Egg.js就是阿里巴巴基于Koa2封装的一套企业开发框架[2]。

基于Egg.js可以快速构建企业级应用,通过Egg.js脚手架可以快速生成Egg.js的项目结构,本次系统项目结构如图3所示,其中config.default.js为项目的配置文件,可以对项目的安全策略、中间件、静态配置,app文件夹为项目的源代码文件,快速建立好部分功能代码文件,文件夹controller、midleware、schedule、service、util、view分别为控制器、中间件、定时任务、服务类、工具类和视图层,router.js为路由控制文件。Egg.js以其中间件机制 和 HTTP服务机制作为框架基础,通过 Loader 机制对Egg.js各分层机制的约定基础,它为企业快速开发Node.js应用提供便利。

图3 Egg.js项目结构图

3.2 前端后端网页开发

前端页面JQuery-WEUI和图表统计ECharts,JQuery-WEUI是微信前端进行页面开发的中重要模块,它提供页面中常用的样式和组件,例如常用图标、颜色、按钮、对话框、输入框、响应式布局等,为前端开发提供极大便利。ECharts是百度推出的图表工具,它有丰富的图表统计样式和模型供开发者选择,通过ECharts开发者可以快捷方便的将数据进行可视化展示。

3.3 非结构化数据存储

随着云计算和大数据等技术的不断发展,Nosql数据库使用的原来越广泛,和关系型数据库相比,Nosql数据库的数据结构灵活,响应时间快,可大量存储数据,因此方便进行数据存储和分析,常见的Nosql数据库有Redis、Memcache、MongoDb,考虑后期需要对日志信息进行图表统计和数据分析,本次选用和Node.js搭配较多的MongoDB数据库进行数据存储,同时MongoDB数据库基于可视化工具ReboMongo进行开发[3]。

3.4 部分服务端功能实现

(1)访问记录录入界面如图4所示,机房访问信息录入的信息主要包括访问人姓名、电话、身份证号码、进入机房事由、携带设备、进入和离开机房的时间等,其中携带的设备使用百度ueditor进行上传附文本信息,可对用户携带物品进行拍照处理。用户记录录入后,通过AJAX将信息发送给Egg.js后台服务接口,后台在对信息进行校验后,存入到MongoDB数据库中。

(2)访问记录展示页面,该页面是对用户访问信息进行列表分页展示,同时针对每条访问记录,机房管理人员可对人员携带的物品信息进行查看。此外,对于访问记录也可导出成Word打印,通过Wordexport.js框架对HTML网页信息进行转化成Word的形式将访问记录打印处理,便于信息的保存和检查。记录列表和机房进出登记表分别如图5和图6所示。

图5 记录列表页面

图6机房出入记录表

(3)用户访问信息统计界面如图7所示,该模块通过百度ECharts插件对机房周访问记录、月访问记录和年访问记录以柱状图和饼状图的形式分别进行了展示,机房管理人员通过此模块可以系统了解机房的整体的进出情况。

图7 机房进出记录统计

4 结束语

针对系统快速开发的趋势,本文结合了Egg.js快速开发和Node.js模块丰富的优势,将前端开发、服务端设计和数据库开发进行有效结合,笔者在完成机房进出记录管理平台开发后,通过线上部署测试后,发现该平台能够满足日常机房访问记录的高效管理。下一步,笔者将进一步对系统进行探索和优化,关注实际需求的变化,将系统升级为全国范围的机房管理的平台。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!