侯艳阳
(郑州工业应用技术学院,河南 新郑 451100)
模型-视图-控制器(Model-View-Controller,MVC)在逻辑的图形化用户界面的结构中用于映射传统的输入、处理和输出功能。开发思想就是通过操控控制器向后台数据库获取数据,通过逻辑模型将数据传递给视图,视图再通过EJS模板引擎将后台获取到的动态数据渲染到前台页面。
假如有一个View会提交数据给Model进行处理以实现具体的行为,View通常不会直接提交数据给Model,会先把数据提交给Controller,再将数据转发给Model[1]。假如此时程序业务逻辑的处理方式有变化,只需在Controller中将原来的Model换成新实现的Model,控制器的作用就是这么简单,用来将不同的View和不同的Model组织在一起,顺便给双方传递消息。
影城购票选座小程序已成为观众购票的主要渠道,据统计,有20.86%的人是在影院直接购买电影票的,还有72.25%的受访者是通过在线选座APP完成的国庆档购票,这里包含各互联网品牌的在线选座APP以及院线自有APP。根据国家电影专资办的票房统计,2015年的国庆档网票出票比已超过七成,这与华谊兄弟研究院的调研所得几乎完全一致——毫无疑问,影城购票选座小程序已成为人们购买电影票的主力渠道。
小程序涉及网络应用,必须联网才能运行,需要一定的存储量,数据都储存在MONGODB数据库中,因此,对数据库的操作较多。小程序总体采用了Web的标准文档流布局方案,也叫流式布局,是前端开发语言的默认布局方案。为了保证小程序的高效运行,笔者对有关数据库采用MVC的模式进行了封装,但是存在许多不足之处。将前台和后台的视图和静态资源混在一起,不利于后期的维护和二次开发,因此,主要采用前后台的分离。
小程序的设计模式是采用经典的MVC模式,软件的设计思想采用面向对象的编程模式来实现,开发思想是通过操控控制器向后台数据库获取数据,通过逻辑模型将数据传递给视图,再通过EJS模板引擎将后台获取到的动态数据渲染到前台页面。开发的同时要保证后台数据库的连接,通过调用相关API接口来获取数据,拿到数据后通过前端页面展示出来。主要包括以下3点:保证系统实现页面的交互,提高用户满意度;及时更新数据,保证信息的实时性;采用集中管理的方式,提高管理化水平。
本小程序功能模块分为两部分,一部分是前台模块,另一部分是后台模块。前台模块有注册、登录及用户编辑信息等,通过本地开启服务进入小程序后,只能访问前台首页,包括前台的基本信息,后台信息无访问权限。管理员也需要通过登录管理员账号进入后台管理页面,后台管理页面包括信息的添加、编辑、删除等功能,只能由管理员进行访问,用户无法访问。
首先分析该小程序需要多少个数据库,其次对数据库进行设计,所使用的数据库是MONGODB数据库,该数据库利于操作方便管理,在本地还可以利用Robomongo可视化工具来对数据库进行管理操作。数据库中的数据集合在设计数据库时进行了分开处理,目的是保证用户在账号密码泄露的情况下自己的私密信息也能得到保护,提高小程序的安全性和保密性[2]。在后台管理员模块的编辑页面中,输入需要添加的电影及主演,点击提交按钮,系统会自动向数据库发送自己需要的信息并保存在mongodDB数据库中,利用Robomomgo可视化工具查看数据信息。
首先测试小程序的运行环境是否正常,在详细信息中查看node环境是否运行,此时node环境已经在成功运行,需要测试本地服务是否成功开启,测试本地服务需要两步:首先,在本地服务中测试MONGODB数据库服务是否开通;其次在小程序运行前要在本地开启一个端口,进入小程序文件夹下打开cmd黑窗口,通过输入命令nodemon bin/www来启动端口,端口号默认为3000。当服务器启动之后,需要测试小程序托管的静态资源是否成功,通过cmd黑窗口查看测试结果。如果以上测试结果全部成功,就可以通过在浏览器地址栏下输入http://localhost:3000来进行访问。
数据都储存在MONGODB数据库中,因此,对数据库的操作比较多。为了保证小程序的高效运行、减少代码的冗余、优化设计结构,采用了MVC的模式进行封装,将需要引用的静态资源放在了public文件夹中,并将其引入。经过前面的布局,小程序需要搭建二级路由来实现对前后台的管理。首先,在入口文件下搭建一级路由,然后引入一级路由;其次,设置好一级路由后,再搭建二级路由,二级路由包括前台和后台;最后,路由部分运用router路由管理器来进行路由协议传输。
运行小程序在实现页面跳转时,小程序会默认在跳转页面中将页面所托管的静态资源进行加载,这样能实现资源的合理利用。运行一个小程序,不仅要保证小程序的正常运行,还要考虑到资源利用的问题。如果不进行资源托管,意味着加载一个页面时,要开辟一片新的空间来存储页面所需要的资源,大大降低了页面的性能。因此,做好一个小程序,不仅需要开发人员技术上的支持,还要考虑电脑的内存和SEO优化问题,这也是为了后期能够更好地维护[3]。代码上也需要合理的规划,确保别人查看自己写的代码时能一目了然,需要在设计过程中逐步提高自己代码的可阅读性。从搭建运行环境到搭建路由,再到系统的功能设计以及选取合适的数据库,一步步实现最终达到预期效果,如图1所示。
图1 预期访问效果
随着Internet的广泛使用,Web技术的迅速发展,基于Web的各种系统小程序越来越受社会的关注。影院购票小程序平台也成为人们日常生活中不可或缺的一部分。目前,无法大规模投入使用,只能小规模地运行,将来如何才能大规模地投入使用,是以后研究的重点。