侯艷陽
(鄭州工業(yè)應用技術學院,河南 新鄭 451100)
模型-視圖-控制器(Model-View-Controller,MVC)在邏輯的圖形化用戶界面的結構中用于映射傳統(tǒng)的輸入、處理和輸出功能。開發(fā)思想就是通過操控控制器向后臺數據庫獲取數據,通過邏輯模型將數據傳遞給視圖,視圖再通過EJS模板引擎將后臺獲取到的動態(tài)數據渲染到前臺頁面。
假如有一個View會提交數據給Model進行處理以實現(xiàn)具體的行為,View通常不會直接提交數據給Model,會先把數據提交給Controller,再將數據轉發(fā)給Model[1]。假如此時程序業(yè)務邏輯的處理方式有變化,只需在Controller中將原來的Model換成新實現(xiàn)的Model,控制器的作用就是這么簡單,用來將不同的View和不同的Model組織在一起,順便給雙方傳遞消息。
影城購票選座小程序已成為觀眾購票的主要渠道,據統(tǒng)計,有20.86%的人是在影院直接購買電影票的,還有72.25%的受訪者是通過在線選座APP完成的國慶檔購票,這里包含各互聯(lián)網品牌的在線選座APP以及院線自有APP。根據國家電影專資辦的票房統(tǒng)計,2015年的國慶檔網票出票比已超過七成,這與華誼兄弟研究院的調研所得幾乎完全一致——毫無疑問,影城購票選座小程序已成為人們購買電影票的主力渠道。
小程序涉及網絡應用,必須聯(lián)網才能運行,需要一定的存儲量,數據都儲存在MONGODB數據庫中,因此,對數據庫的操作較多。小程序總體采用了Web的標準文檔流布局方案,也叫流式布局,是前端開發(fā)語言的默認布局方案。為了保證小程序的高效運行,筆者對有關數據庫采用MVC的模式進行了封裝,但是存在許多不足之處。將前臺和后臺的視圖和靜態(tài)資源混在一起,不利于后期的維護和二次開發(fā),因此,主要采用前后臺的分離。
小程序的設計模式是采用經典的MVC模式,軟件的設計思想采用面向對象的編程模式來實現(xiàn),開發(fā)思想是通過操控控制器向后臺數據庫獲取數據,通過邏輯模型將數據傳遞給視圖,再通過EJS模板引擎將后臺獲取到的動態(tài)數據渲染到前臺頁面。開發(fā)的同時要保證后臺數據庫的連接,通過調用相關API接口來獲取數據,拿到數據后通過前端頁面展示出來。主要包括以下3點:保證系統(tǒng)實現(xiàn)頁面的交互,提高用戶滿意度;及時更新數據,保證信息的實時性;采用集中管理的方式,提高管理化水平。
本小程序功能模塊分為兩部分,一部分是前臺模塊,另一部分是后臺模塊。前臺模塊有注冊、登錄及用戶編輯信息等,通過本地開啟服務進入小程序后,只能訪問前臺首頁,包括前臺的基本信息,后臺信息無訪問權限。管理員也需要通過登錄管理員賬號進入后臺管理頁面,后臺管理頁面包括信息的添加、編輯、刪除等功能,只能由管理員進行訪問,用戶無法訪問。
首先分析該小程序需要多少個數據庫,其次對數據庫進行設計,所使用的數據庫是MONGODB數據庫,該數據庫利于操作方便管理,在本地還可以利用Robomongo可視化工具來對數據庫進行管理操作。數據庫中的數據集合在設計數據庫時進行了分開處理,目的是保證用戶在賬號密碼泄露的情況下自己的私密信息也能得到保護,提高小程序的安全性和保密性[2]。在后臺管理員模塊的編輯頁面中,輸入需要添加的電影及主演,點擊提交按鈕,系統(tǒng)會自動向數據庫發(fā)送自己需要的信息并保存在mongodDB數據庫中,利用Robomomgo可視化工具查看數據信息。
首先測試小程序的運行環(huán)境是否正常,在詳細信息中查看node環(huán)境是否運行,此時node環(huán)境已經在成功運行,需要測試本地服務是否成功開啟,測試本地服務需要兩步:首先,在本地服務中測試MONGODB數據庫服務是否開通;其次在小程序運行前要在本地開啟一個端口,進入小程序文件夾下打開cmd黑窗口,通過輸入命令nodemon bin/www來啟動端口,端口號默認為3000。當服務器啟動之后,需要測試小程序托管的靜態(tài)資源是否成功,通過cmd黑窗口查看測試結果。如果以上測試結果全部成功,就可以通過在瀏覽器地址欄下輸入http://localhost:3000來進行訪問。
數據都儲存在MONGODB數據庫中,因此,對數據庫的操作比較多。為了保證小程序的高效運行、減少代碼的冗余、優(yōu)化設計結構,采用了MVC的模式進行封裝,將需要引用的靜態(tài)資源放在了public文件夾中,并將其引入。經過前面的布局,小程序需要搭建二級路由來實現(xiàn)對前后臺的管理。首先,在入口文件下搭建一級路由,然后引入一級路由;其次,設置好一級路由后,再搭建二級路由,二級路由包括前臺和后臺;最后,路由部分運用router路由管理器來進行路由協(xié)議傳輸。
運行小程序在實現(xiàn)頁面跳轉時,小程序會默認在跳轉頁面中將頁面所托管的靜態(tài)資源進行加載,這樣能實現(xiàn)資源的合理利用。運行一個小程序,不僅要保證小程序的正常運行,還要考慮到資源利用的問題。如果不進行資源托管,意味著加載一個頁面時,要開辟一片新的空間來存儲頁面所需要的資源,大大降低了頁面的性能。因此,做好一個小程序,不僅需要開發(fā)人員技術上的支持,還要考慮電腦的內存和SEO優(yōu)化問題,這也是為了后期能夠更好地維護[3]。代碼上也需要合理的規(guī)劃,確保別人查看自己寫的代碼時能一目了然,需要在設計過程中逐步提高自己代碼的可閱讀性。從搭建運行環(huán)境到搭建路由,再到系統(tǒng)的功能設計以及選取合適的數據庫,一步步實現(xiàn)最終達到預期效果,如圖1所示。
圖1 預期訪問效果
隨著Internet的廣泛使用,Web技術的迅速發(fā)展,基于Web的各種系統(tǒng)小程序越來越受社會的關注。影院購票小程序平臺也成為人們日常生活中不可或缺的一部分。目前,無法大規(guī)模投入使用,只能小規(guī)模地運行,將來如何才能大規(guī)模地投入使用,是以后研究的重點。