999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于MEAN框架的實(shí)時(shí)數(shù)據(jù)共享競(jìng)賽系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

2019-07-03 02:31:14石清
軟件工程 2019年5期

石清

摘? 要:在“互聯(lián)網(wǎng)+”概念的影響下,越來(lái)越多的信息技術(shù)應(yīng)用于體育產(chǎn)業(yè)。如何充分地利用信息技術(shù)手段為體育競(jìng)賽服務(wù),如何使體育競(jìng)賽組織工作更加高效,如何使競(jìng)賽數(shù)據(jù)更加透明,是目前面臨的重要問(wèn)題。結(jié)合摩托艇項(xiàng)目,利用MEAN框架,開(kāi)發(fā)了一套實(shí)時(shí)數(shù)據(jù)共享競(jìng)賽管理系統(tǒng),并將基于RESTful接口的異步I/O模式貫穿于整個(gè)體育競(jìng)賽系統(tǒng)中。該系統(tǒng)能有效降低獲取信息的成本,使參與者即時(shí)掌握賽事動(dòng)態(tài),提高工作效率,改善用戶體驗(yàn)。

關(guān)鍵詞:實(shí)時(shí)數(shù)據(jù)共享;競(jìng)賽系統(tǒng);MEAN框架;RESTful接口

中圖分類號(hào):TP311? ? ?文獻(xiàn)標(biāo)識(shí)碼:A

Abstract:With the influence of Internet+,more and more information technology is applied to the sports industry.The current major problems lie in how to make full use of information technology to serve sports competitions,how to make sports competition organization work more efficiently,and how to make competition data more transparent.In conjunction with the motorboat project,the real-time data sharing competition system is developed based on the MEAN framework,applying the RESTful-based asynchronous I/O mode to the entire sports competition system.The system can effectively reduce the cost of obtaining information and update participants with latest news and events,increasing work efficiency and improving user experience.

Keywords:real-time data sharing;competition system;MEAN framework;RESTful interface

1? ?引言(Introduction)

近年來(lái)隨著科技的進(jìn)步,尤其是“互聯(lián)網(wǎng)+體育”概念的提出,為體育產(chǎn)業(yè)帶來(lái)了顛覆性的影響,為整個(gè)行業(yè)的發(fā)展提供了新模式。社交媒體的廣泛應(yīng)用不斷推動(dòng)民眾參與體育的熱情,無(wú)論是手機(jī)還是各種可穿戴設(shè)備都被廣泛應(yīng)用于體育相關(guān)的健身活動(dòng)中。互聯(lián)網(wǎng)視頻平臺(tái)及新媒體已經(jīng)成為社會(huì)主流觀賽和賽后討論渠道,各式各樣的體育信息平臺(tái)如雨后春筍般涌現(xiàn)出來(lái)。無(wú)論是體育電商、賽事直播,還是個(gè)人健身、互動(dòng)交流,各類應(yīng)用滿足了大眾個(gè)性化體育信息服務(wù)的需求,從個(gè)人到企業(yè)組織,乃至整個(gè)社會(huì)的信息化程度都越來(lái)越高。

信息化的過(guò)程就是數(shù)字化的過(guò)程,進(jìn)而數(shù)據(jù)化的過(guò)程。但是,如果要發(fā)揮數(shù)據(jù)的真正價(jià)值,僅僅把數(shù)據(jù)儲(chǔ)存在數(shù)據(jù)庫(kù)中是不夠的,而是要將數(shù)據(jù)進(jìn)行分享。正如阿里巴巴首席技術(shù)官王堅(jiān)在其著作《在線》中所提到的,“今天數(shù)據(jù)的意義并不在于有多大,真正有意義的是讓數(shù)據(jù)變得在線,這恰恰是互聯(lián)網(wǎng)的特點(diǎn)。為什么今天的淘寶數(shù)據(jù)值錢,因?yàn)樗窃诰€的。寫在磁帶和紙上的數(shù)據(jù),作用是有限的[1]。”隨著云數(shù)據(jù)庫(kù)技術(shù)的發(fā)展與運(yùn)用,無(wú)論是哪種平臺(tái)在運(yùn)行的過(guò)程中產(chǎn)生的數(shù)據(jù)都可以存儲(chǔ)在云數(shù)據(jù)庫(kù)中,而這些海量的數(shù)據(jù)都可以通過(guò)接口的形式實(shí)現(xiàn)共享,為今后大數(shù)據(jù)的分析和挖掘提供了前提。大數(shù)據(jù)與云計(jì)算技術(shù)的發(fā)展也給體育服務(wù)帶來(lái)了新的發(fā)展契機(jī)[2]。通過(guò)數(shù)據(jù)共享,分析和挖掘數(shù)據(jù)背后的邏輯聯(lián)系,進(jìn)而有利于更加全方位的展現(xiàn)體育的輪廓和視角,無(wú)論是將這些分析結(jié)果應(yīng)用于政策制定還是媒體傳播,都能使其信息更具深度性[3]。

隨著我國(guó)體育賽事的逐漸增多,對(duì)競(jìng)賽服務(wù)體系也提出了更高的要求[3]。而傳統(tǒng)競(jìng)賽服務(wù)系統(tǒng)多采用C/S構(gòu)架,前期需要較大的硬件成本投入,同時(shí)開(kāi)發(fā)周期長(zhǎng),成本高,除個(gè)別大型綜合性賽事外,單項(xiàng)體育比賽的競(jìng)賽系統(tǒng)幾乎不具備實(shí)時(shí)分享數(shù)據(jù)的能力。而普通基于B/S構(gòu)架下的體育競(jìng)賽信息管理系統(tǒng)功能多集中在運(yùn)動(dòng)員注冊(cè)與賽事報(bào)名上,功能較為單一。而一套基于B/S架構(gòu)的輕量級(jí)全功能競(jìng)賽管理系統(tǒng),無(wú)論是在數(shù)據(jù)分享,系統(tǒng)可擴(kuò)展性上,還是在快速開(kāi)發(fā)和維護(hù)成本方便都將具有更大的優(yōu)勢(shì)。

2? ?相關(guān)技術(shù)介紹(Related technology introduction)

MEAN框架是一個(gè)JavaScript平臺(tái)下現(xiàn)代Web開(kāi)發(fā)框架的總稱,是MongoDB、Express、Angular、NodeJS四個(gè)框架的第一個(gè)字母組合的簡(jiǎn)稱,該框架均使用JavaScript作為開(kāi)發(fā)語(yǔ)言(Angular 2.0之后使用的是TypeScript),開(kāi)發(fā)者無(wú)須在不同的語(yǔ)言之間切換,很好地適應(yīng)了個(gè)人全棧開(kāi)發(fā)的需求。

2.1? ?NodeJS介紹

NodeJS是一種基于Chrome V8引擎,用于搭建響應(yīng)速度快、易于擴(kuò)展的網(wǎng)絡(luò)應(yīng)用的執(zhí)行平臺(tái)。Chrome V8引擎針對(duì)JavaScript的編譯進(jìn)行了優(yōu)化,使得代碼運(yùn)行速度獲得了極大提升,同時(shí)節(jié)約了開(kāi)發(fā)成本[4]。

2.2? ?Express介紹

Express是一個(gè)基于NodeJS平臺(tái)的極簡(jiǎn)、靈活的Web應(yīng)用開(kāi)發(fā)框架,它提供一系列強(qiáng)大的特性,可以方便地創(chuàng)建各種Web和移動(dòng)設(shè)備應(yīng)用。豐富的HTTP快捷方法和任意排列組合的Connect中間件,使創(chuàng)建健壯、友好的API變得既快速又簡(jiǎn)單[5,6]。

2.3? ?Angular 介紹

Angular是一個(gè)基于HTML和TypeScript構(gòu)建客戶端應(yīng)用的平臺(tái)與框架。它是最著名的SPA框架之一,它能提供一種接近桌面應(yīng)用程序的流暢用戶體驗(yàn)單Web頁(yè)面應(yīng)用程序,它集聲明式模板、依賴注入、端到端工具和一些最佳實(shí)踐于一身,能輕松地構(gòu)建Web應(yīng)用。

2.4? ?MongoDB介紹

MongoDB屬于NoSQL,其數(shù)據(jù)保存為JSON格式文檔,具有高性能、高可用性和自動(dòng)擴(kuò)展功能。其支持的數(shù)據(jù)結(jié)構(gòu)非常松散,可以存儲(chǔ)比較復(fù)雜的數(shù)據(jù)類型。尤其適合項(xiàng)目早期開(kāi)發(fā)過(guò)程中,數(shù)據(jù)結(jié)構(gòu)尚未完全明確,需要高度靈活性的IT系統(tǒng),并對(duì)數(shù)據(jù)庫(kù)性能要求較高,但不需要高度的數(shù)據(jù)一致性的開(kāi)發(fā)場(chǎng)景。

3? ?需求分析(Requirements analysis)

實(shí)時(shí)數(shù)據(jù)共享競(jìng)賽系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā),是為了方便賽事的組織和管理,是通過(guò)互聯(lián)網(wǎng)實(shí)現(xiàn)信息的實(shí)時(shí)交互,打通所有溝通環(huán)節(jié),無(wú)論是運(yùn)動(dòng)員的報(bào)名報(bào)項(xiàng),還是競(jìng)賽委員會(huì)公布比賽成績(jī),都完全通過(guò)競(jìng)賽系統(tǒng)完成。即實(shí)現(xiàn)了無(wú)紙化辦公,又提高了工作效率。其具體的功能需求如下所述。

3.1? ?用戶信息管理

面向的對(duì)象為運(yùn)動(dòng)員和俱樂(lè)部管理人員,主要功能是個(gè)人及俱樂(lè)部基礎(chǔ)信息管理,報(bào)名參賽信息管理等。

3.2? ?競(jìng)賽項(xiàng)目管理

面向的對(duì)象為賽事主辦單位,主要功能是分布競(jìng)賽通知、競(jìng)賽項(xiàng)目設(shè)定、日程安排等賽事相關(guān)信息。

3.3? ?競(jìng)賽信息管理

面向的對(duì)象為裁判委員會(huì),主要功能是調(diào)整出發(fā)艇位,為競(jìng)速類項(xiàng)目計(jì)時(shí)計(jì)圈,為表演類項(xiàng)目打分,對(duì)犯規(guī)進(jìn)行處罰,計(jì)算項(xiàng)目積分,顯示實(shí)時(shí)成績(jī),分布最終成績(jī)等。

4? ?系統(tǒng)架構(gòu)(System architecture)

4.1? ?服務(wù)器構(gòu)架

為了提高系統(tǒng)安全性,以及后續(xù)的擴(kuò)展能力,設(shè)計(jì)時(shí)采用將計(jì)算、數(shù)據(jù)庫(kù)和文件存儲(chǔ)分離的架構(gòu)。整個(gè)系統(tǒng)都部署在阿里云體系中,即兼顧了高效率的彈性又縮減了自建服務(wù)器的成本,服務(wù)器構(gòu)架如圖1所示。

4.2? ?MEAN架構(gòu)

基于NodeJS、Express和MongoDB的架構(gòu)可以方便的在服務(wù)器端創(chuàng)建一個(gè)MVC框架的系統(tǒng)。MongoDB結(jié)合Mongoose可以很好地管理模型層并進(jìn)行持久化,所有的業(yè)務(wù)邏輯通過(guò)NodeJS和Express來(lái)完成[7-9]。服務(wù)器端無(wú)須設(shè)計(jì)View層,所有的數(shù)據(jù)都采用RESTful接口的形式向客戶端傳輸數(shù)據(jù),所有接口都是通過(guò)Express路由route來(lái)設(shè)計(jì)完成。Angular通過(guò)Ajax向上述接口請(qǐng)求數(shù)據(jù),并將獲取的數(shù)據(jù)綁定在Model對(duì)象上,并最終在View層中顯示出來(lái)[10-12]。

對(duì)于一個(gè)用于解決體育競(jìng)賽的Web應(yīng)用程序來(lái)說(shuō),以輕量級(jí)去適應(yīng)體育競(jìng)賽本身的靈活多變,通過(guò)上述多層架構(gòu)實(shí)現(xiàn)一個(gè)可重用性、簡(jiǎn)單性、可擴(kuò)展性、功能清晰分離的系統(tǒng)。

5? 系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(System design and

implementation)

5.1? ?NoSQL數(shù)據(jù)庫(kù)的必要性

作為體育競(jìng)賽系統(tǒng)來(lái)說(shuō),其系統(tǒng)結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)受制于體育項(xiàng)目的競(jìng)賽規(guī)則和競(jìng)賽組織形式。而競(jìng)賽規(guī)則間隔幾年就會(huì)有一次調(diào)整,競(jìng)賽形式也會(huì)根據(jù)具體競(jìng)賽條件進(jìn)行調(diào)整。尤其是小眾的運(yùn)動(dòng)項(xiàng)目,變化就更為明顯。其根源上就已經(jīng)決定了很難在事務(wù)處理上保持?jǐn)?shù)據(jù)結(jié)構(gòu)的恒定不變。而NoSQL由于其本身數(shù)據(jù)模式靈活,適合非結(jié)構(gòu)化的數(shù)據(jù)存儲(chǔ)。

在使用MongoDB來(lái)存取數(shù)據(jù)時(shí),通常都是使用Schema來(lái)定義對(duì)象。它無(wú)須定義MySQL等關(guān)系型數(shù)據(jù)庫(kù)的id主鍵,系統(tǒng)會(huì)自動(dòng)為每個(gè)文檔添加一個(gè)"_id"鍵,其默認(rèn)類型為ObjectId對(duì)象,該對(duì)象并不屬于自增型數(shù)據(jù),當(dāng)有大量數(shù)據(jù)同時(shí)進(jìn)行請(qǐng)求時(shí),它無(wú)須等待上一個(gè)id序號(hào)存儲(chǔ)完成之后再進(jìn)行存儲(chǔ)。對(duì)于體育競(jìng)賽中多場(chǎng)次同時(shí)競(jìng)賽的方式具有非常好的支持,MongoDB的該特性非常適合于異步IO的存儲(chǔ)方式。

5.2? ?數(shù)據(jù)模型的設(shè)計(jì)與實(shí)現(xiàn)

使用NoSQL數(shù)據(jù)庫(kù)MongoDB來(lái)存取數(shù)據(jù),與使用其他關(guān)系數(shù)據(jù)庫(kù)(如MySQL)的語(yǔ)法區(qū)別并不明顯,轉(zhuǎn)換成本不高。而對(duì)于一個(gè)數(shù)據(jù)結(jié)構(gòu)尚處于變化中的系統(tǒng)來(lái)說(shuō),使用MongoDB可能還具備一定的優(yōu)勢(shì)。MongoDB本身提供的查詢語(yǔ)言非常強(qiáng)大,同時(shí)配合Mongoose,以類似于面向?qū)ο蟮姆绞絹?lái)操作數(shù)據(jù)對(duì)象,實(shí)現(xiàn)數(shù)據(jù)的持久化。

阿里云出于完全考慮,其MongoDB數(shù)據(jù)庫(kù)通常只能通過(guò)內(nèi)網(wǎng)進(jìn)行訪問(wèn),所以在開(kāi)發(fā)過(guò)程中不能實(shí)時(shí)連接云數(shù)據(jù)庫(kù)進(jìn)行調(diào)試,只能在本地建立一個(gè)相同的MongoDB數(shù)據(jù)庫(kù)。為了開(kāi)發(fā)方便建立一個(gè)獨(dú)立的database configuration文件,單獨(dú)保存數(shù)據(jù)庫(kù)的設(shè)置,分別用于網(wǎng)絡(luò)與本地的數(shù)據(jù)庫(kù)連接。

在NodeJS的app.js文件中配置MongoDB數(shù)據(jù)庫(kù),分別在本地和阿里云數(shù)據(jù)庫(kù)建立相同的數(shù)據(jù)庫(kù)用于前期測(cè)試:

5.3? ?文件管理服務(wù)的設(shè)計(jì)與實(shí)現(xiàn)

系統(tǒng)在設(shè)計(jì)時(shí)采用將WEB服務(wù)器與文件服務(wù)器分離的模式,這樣可以分擔(dān)Web服務(wù)器的I/O負(fù)載,提高WEB服務(wù)器的性能和穩(wěn)定性。同時(shí),將耗費(fèi)資源的文件服務(wù)分離出來(lái),也可以有效地減少帶寬成本,提高訪問(wèn)速度。

創(chuàng)建文件服務(wù)器時(shí)選擇的是阿里云的對(duì)象存儲(chǔ)服務(wù)(Object Storage Service,OSS)。OSS擁有與平臺(tái)無(wú)關(guān)的RESTful API接口和SDK開(kāi)發(fā)包,提供包括圖片格式轉(zhuǎn)換、縮略圖、剪裁、水印、縮放等多種增值服務(wù),結(jié)合OSS進(jìn)行開(kāi)發(fā),將使整個(gè)開(kāi)發(fā)過(guò)程方便、快捷,并使系統(tǒng)的文件管理服務(wù)功能更加強(qiáng)大。

系統(tǒng)中的文件管理服務(wù)開(kāi)發(fā)是將OSS封裝在接口中,從而實(shí)現(xiàn)對(duì)接口的調(diào)用。封閉圖片上傳的函數(shù)定義如下:

一般來(lái)說(shuō),將文件上傳到分離的WEB服務(wù)器和文件服務(wù)器上時(shí)有兩種方式。第一種是先把文件上傳到WEB服務(wù)器上,然后再轉(zhuǎn)到文件服務(wù)器;第二種是直接上傳到文件服務(wù)器上。系統(tǒng)在開(kāi)發(fā)過(guò)程中選擇的是第一種模式,這主要是出于安全考慮,將OSS的寫入和刪除等功能設(shè)置為只能通過(guò)內(nèi)網(wǎng)ECS才允許調(diào)用的模式,外網(wǎng)只允許對(duì)OSS中的文件進(jìn)行讀取。同時(shí)OSS對(duì)于內(nèi)網(wǎng)傳輸實(shí)行免費(fèi)的計(jì)費(fèi)模式也同時(shí)保證了該方案的經(jīng)濟(jì)性。所以在項(xiàng)目設(shè)計(jì)和實(shí)施的時(shí),所有文件在上傳過(guò)程中都必須從ECS服務(wù)器上進(jìn)行中轉(zhuǎn),中轉(zhuǎn)完成后原文件將在ECS服務(wù)器上立即刪除。如圖3所示。

5.4? ?RESTful API接口的設(shè)計(jì)與實(shí)現(xiàn)

該體育競(jìng)賽系統(tǒng)建立在B/S構(gòu)架之上,它不僅需要滿足競(jìng)賽團(tuán)隊(duì)在瀏覽器端發(fā)送的請(qǐng)求,同時(shí)還需要兼顧為比賽現(xiàn)場(chǎng)大屏幕提供實(shí)時(shí)競(jìng)賽數(shù)據(jù),以及為電視臺(tái)轉(zhuǎn)播提供實(shí)時(shí)競(jìng)賽數(shù)據(jù)的需求。所以,系統(tǒng)的應(yīng)用場(chǎng)景是一個(gè)IO密集、高并發(fā)的應(yīng)用場(chǎng)景。而Node的異步I/O可以讓JavaScript的單線程很好的處理阻塞問(wèn)題,使系統(tǒng)更好地利用云服務(wù)器的計(jì)算資源。同時(shí),體育賽事的競(jìng)賽數(shù)據(jù)本身需要其數(shù)據(jù)具備高可靠性,而Node異步I/O、非阻塞的特性正好滿足體育比賽的這些特征。一個(gè)基于Node框架下的RESTful API接口的WEB軟件架構(gòu)不僅可以完美支持上述需求,還可以應(yīng)對(duì)未來(lái)其他系統(tǒng)或其他終端對(duì)數(shù)據(jù)資源的需求。

系統(tǒng)的業(yè)務(wù)邏輯和流程控制都是由獨(dú)立的Controller對(duì)象來(lái)實(shí)現(xiàn),針對(duì)具體的業(yè)務(wù)流程,會(huì)有不同的控制器。以下僅以Message對(duì)象簡(jiǎn)要說(shuō)明實(shí)現(xiàn)過(guò)程。Message Controller對(duì)象定義如下:

5.5? ?RESTful API接口的權(quán)限管理

對(duì)于一個(gè)設(shè)計(jì)好的RESTful API接口來(lái)說(shuō),其本身是無(wú)狀態(tài)的,用戶可以從任意一種可以發(fā)送HTTP請(qǐng)求的終端向服務(wù)器發(fā)送請(qǐng)求。雖然這樣做保證數(shù)據(jù)的高效分享,但卻存在極大的安全隱患。系統(tǒng)在設(shè)計(jì)的過(guò)程中,將所有需要身份驗(yàn)證和角色權(quán)限控制的接口只用node中間件的方式進(jìn)行管理。使用JSON Web Token來(lái)驗(yàn)證請(qǐng)求是否為注冊(cè)用戶發(fā)送,通過(guò)驗(yàn)證注冊(cè)用戶role字段中是否包含特定數(shù)據(jù),判斷用戶是否具有操作權(quán)限。

5.6? ?前端界面的設(shè)計(jì)與實(shí)現(xiàn)

Angular作為Google公司主推的前端應(yīng)用框架,其自動(dòng)化雙向數(shù)據(jù)綁定技術(shù)使Angular運(yùn)行操作體驗(yàn)與本地應(yīng)用非常類似。而模塊化設(shè)計(jì)和依賴注入等技術(shù)都大大地提高了開(kāi)發(fā)速度和軟件結(jié)構(gòu)的彈性。系統(tǒng)前端界面的設(shè)計(jì)過(guò)程中充分利用Angular的特點(diǎn)進(jìn)行設(shè)計(jì),充分考慮用戶體驗(yàn),無(wú)論是用戶輸入還是查詢都具備Autocomplete功能。考慮到該競(jìng)賽系統(tǒng)主要應(yīng)用于國(guó)際賽事,使用Angular第三方組件ngx-translate完成多語(yǔ)言支持。通過(guò)獨(dú)立編輯en.json文件和zh.json文件完成語(yǔ)言包的開(kāi)發(fā),也可根據(jù)需要開(kāi)發(fā)對(duì)更多種類語(yǔ)言的支持。語(yǔ)言包中所有定義的變量都將通過(guò)Angular pipe的方式最終在頁(yè)面中呈現(xiàn),應(yīng)用方法如下:

6? ?結(jié)論(Conclusion)

本文基于MEAN框架開(kāi)發(fā)的摩托艇競(jìng)賽系統(tǒng),利用將計(jì)算、數(shù)據(jù)庫(kù)和文件存儲(chǔ)分離的架構(gòu)提升了服務(wù)器端的安全性,結(jié)合RESTful API接口的設(shè)計(jì)提升了服務(wù)器端的易用性和可擴(kuò)展性。在系統(tǒng)使用過(guò)程中,通過(guò)線上線下相結(jié)合的模式,大幅降低賽事參與各方的溝通成本,有效提高辦賽效率,提升所有賽事參與者的用戶體驗(yàn)。該系統(tǒng)已成功應(yīng)用于2017年中國(guó)柳州國(guó)際水上摩托公開(kāi)賽,并首次在摩托艇項(xiàng)目中實(shí)現(xiàn)了無(wú)紙化辦賽,即節(jié)約了辦賽成本,也讓所有賽事參與者享受到“互聯(lián)網(wǎng)+體育”帶來(lái)的便利。

參考文獻(xiàn)(References)

[1] 王堅(jiān).在線[M].北京:中信出版社,2018.

[2] 王朝霞.互聯(lián)網(wǎng)環(huán)境下體育產(chǎn)業(yè)服務(wù)發(fā)展模式創(chuàng)新研究[J].廣州體育學(xué)院學(xué)報(bào),2016,36(5):18-21.

[3] 周兵.大數(shù)據(jù)時(shí)代新聞報(bào)道中數(shù)據(jù)新聞的運(yùn)用[J].中國(guó)統(tǒng)計(jì),2018(8):20-22.

[4] 陶倩.基于競(jìng)賽規(guī)程的大型體育賽事競(jìng)賽成績(jī)管理軟件系統(tǒng)模型研究[J].山東體育科技,2014(1):62-66.

[5] 黃揚(yáng)子.基于NodeJS平臺(tái)搭建REST風(fēng)格Web服務(wù)[J].無(wú)線互聯(lián)科技,2015(16):57-59.

[6] 王伶俐.基于NodeJS+Express框架的輕應(yīng)用定制平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)科學(xué),2017(11):596-599.

[7] Haviv,Amos Q.MEAN Web Development:Master real-time web application development using a mean combination of MongoDB,Express,Angular JS,and Node.js[M/OL].Birmingham,UK:Packet Publishing.

[8] Holmes,Simon(2015).Getting MEAN with Mongo,Express,Angular,and Node[M/OL].Shelter Island,NY:Manning Publishing.

[9] Dickey,Jeff(2014).Write Modern Web Apps with the MEAN Stack:Mongo,Express,AngularJS, and Node.js(Develop and Design)[M/OL].San Francisco,CA:Peachpit Press.

[10] 程桂花,沈煒,何松林,等.Node.js中Express框架路由機(jī)制的研究[J].工業(yè)控制計(jì)算機(jī),2016,29(8):101-102.

[11] 朱建兵.基于Node.js高并發(fā)網(wǎng)絡(luò)應(yīng)用框架的研究與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2013.

[12] 周昆.基于Node.js的非阻塞多核心服務(wù)器設(shè)計(jì)與實(shí)現(xiàn)[D].廈門:廈門大學(xué),2011.

主站蜘蛛池模板: 青青草一区| 日韩国产精品无码一区二区三区| 天天婬欲婬香婬色婬视频播放| 亚洲精品第一在线观看视频| 性激烈欧美三级在线播放| 91香蕉视频下载网站| 国产女人18毛片水真多1| a级毛片在线免费| 亚洲性视频网站| 91久久国产热精品免费| 欧美a网站| 欧美国产日产一区二区| 国产精品人成在线播放| 国内精品一区二区在线观看| www.youjizz.com久久| 日本a级免费| 婷婷色在线视频| 亚洲第一成年网| 一区二区三区四区日韩| 亚洲最新地址| 欧美啪啪视频免码| 伊人大杳蕉中文无码| 无码内射在线| 国产福利影院在线观看| 欧美a级完整在线观看| 国产欧美专区在线观看| 91po国产在线精品免费观看| 亚洲黄色视频在线观看一区| 在线免费观看AV| 九色视频线上播放| 激情无码视频在线看| 全裸无码专区| 成人亚洲国产| 久久伊人操| 尤物精品国产福利网站| 欧美激情视频二区| 精品久久久久久中文字幕女| 91久久大香线蕉| 无码专区在线观看| 国产精品自在线拍国产电影| 国产一级毛片yw| 精品国产成人国产在线| 国产精品19p| 久久精品波多野结衣| 亚洲成aⅴ人片在线影院八| 亚洲人成电影在线播放| 国产伦片中文免费观看| 欧美亚洲香蕉| 亚洲天堂久久新| 亚洲欧州色色免费AV| 国产视频入口| 精品伊人久久久大香线蕉欧美 | 波多野结衣第一页| 亚洲va精品中文字幕| 毛片在线看网站| 91无码视频在线观看| 毛片视频网址| 中文字幕亚洲综久久2021| 精品1区2区3区| 亚洲国产成熟视频在线多多| 色妞www精品视频一级下载| 亚洲精品国产综合99久久夜夜嗨| 欧美性猛交xxxx乱大交极品| 国产精品亚洲一区二区在线观看| 99精品福利视频| 国产熟睡乱子伦视频网站| 亚洲国产精品人久久电影| 国产精品人莉莉成在线播放| 亚洲视频二| 国产69精品久久久久孕妇大杂乱| 久久婷婷五月综合色一区二区| 欧美在线视频不卡第一页| 1769国产精品免费视频| 国产高清国内精品福利| 国产夜色视频| 国产激爽爽爽大片在线观看| 色噜噜综合网| 内射人妻无码色AV天堂| 九色最新网址| 丁香婷婷激情综合激情| 国产a v无码专区亚洲av| 亚洲欧美综合另类图片小说区|