论文部分内容阅读
软件框架是软件开发中的基础设施,成熟的软件框架可以加快软件开发速度、提高软件质量、降低软件开发成本。传统的基于Java、C#等语言开发的Web应用框架,使用前后端高度耦合的开发方式,且在服务端编程方式以及部署方案上的低效严重制约了Web应用的性能提升与开发效率,而依托于Google V8引擎的Node.js由于其事件驱动以及非阻塞I/O的特性使其在Web应用开发中有了不可或缺的地位,因此开发一套新型的Web应用框架以提高软件开发的效率则显得极为重要。本文结合某公司现行Web应用开发框架中的不足之处与对新框架的需求,设计并实现了一种基于Node.js的Web应用开发框架。具体而言,本文的工作主要体现在以下几个方面:(1)采用前后端分离开发代替传统的高耦合式开发。传统的Web开发偏向于使用模板引擎来渲染页面,这种方法虽然有益于搜索引擎优化SEO(Search Engine Optimization),但在如今多种前端框架的高效率开发下,后端渲染导致的高耦合成为了前后端协同开发中倍受诟病的地方,本文所开发的Web应用框架则以前后端分离代替传统的后端渲染,并在此基础上使用React开发本Web应用框架中的前台管理系统部分。(2)以扩展中间件形式对Koa进行二次开发。基于Node.js的Koa是本应用框架的基础Web框架,Koa本身功能较为基础和有限,本应用框架选择以扩展中间件的形式对Koa进行二次开发以实现框架的服务端功能需求。在服务端应用程序接口API(Application Programming Interface)的风格设计上,本应用框架选择RESTful作为设计规范,并包含了一套基于角色的权限管理模块以及用于解决多种数据库访问异构问题的对象关系映射ORM(Object Relational Mapping)模块,对于开发中的异常处理、错误码信息以及日志记录模块同样也囊括在本Web应用框架中。(3)改变前端与服务端部署方式。服务端与前端的部署稍有不同,前端文件及静态资源自动化打包上传至内容分发网络CDN(Content Delivery Network)上,以提高访问速度,减缓服务器访问压力,而服务端程序则以集群的方式部署在服务器上,通过基于Node.js中cluster模块的pm2实现多进程部署以提高资源利用率与访问效率。(4)通过在企业网络培训系统中的应用来检验本Web应用框架的实用性。