• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于Node.js中間層Web開發(fā)的研究與實現(xiàn)
    ——以微信圖書借閱平臺為例

    2017-04-12 05:39:38柴瑜晗
    河北工業(yè)科技 2017年2期
    關(guān)鍵詞:中間層服務(wù)器端菜單

    仇 晶,黃 巖,柴瑜晗

    (河北科技大學(xué)信息科學(xué)與工程學(xué)院,河北石家莊 050018)

    基于Node.js中間層Web開發(fā)的研究與實現(xiàn)
    ——以微信圖書借閱平臺為例

    仇 晶,黃 巖,柴瑜晗

    (河北科技大學(xué)信息科學(xué)與工程學(xué)院,河北石家莊 050018)

    針對Web研發(fā)領(lǐng)域一直面臨前后端耦合問題,在充分分析傳統(tǒng)的互聯(lián)網(wǎng)前后端Web軟件開發(fā)的基礎(chǔ)上,提出了引入 Node.js 作為中間層來解除前、后端之間耦合關(guān)系的新解決方案。設(shè)計了新的架構(gòu)模式指導(dǎo)Web軟件開發(fā),從而達到提高開發(fā)效率、提升代碼靈活性、明確開發(fā)人員工作職責(zé)等目的?;诖搜芯?,真實開發(fā)了一個基于微信的圖書借閱平臺,并以此作為可行性檢驗的依據(jù),該圖書借閱平臺使用微信作為前端執(zhí)行環(huán)境,提供圖書借閱、圖書歸還、圖書入庫、圖書瀏覽功能。系統(tǒng)采用 B/S 架構(gòu),Node.js 中間層和后端程序在服務(wù)器中運行,用戶關(guān)注微信公眾號后,可以通過微信聊天窗口接收服務(wù)器端訊息,也可以通過公眾號菜單導(dǎo)航到前端界面,完成圖書借閱分享操作,交互方式高效簡潔。

    計算機網(wǎng)絡(luò);Web開發(fā)方法;耦合與解耦;Node.js;中間層;移動終端

    步入信息時代以來,互聯(lián)網(wǎng)給人們的生活帶來了翻天覆地的變化,互聯(lián)網(wǎng)也不再簡單地僅僅通過提供便利快捷的資訊服務(wù)來豐富人們的生活。互聯(lián)網(wǎng)的出現(xiàn)打破了許多傳統(tǒng)行業(yè)壟斷的格局,互聯(lián)網(wǎng)以其接入面廣、信息及時、人人可參與等性質(zhì),迅速融入到了人們的生活中,并且已經(jīng)成為整個社會不可缺少的一部分[1]。大約5年以前的互聯(lián)網(wǎng)是屬于PC時代,那時人們的網(wǎng)絡(luò)生活包括逛貼吧、看資訊、寫博客、下載多媒體文件以及在線網(wǎng)購等。隨著互聯(lián)網(wǎng)的發(fā)展、移動4G和公共Wifi網(wǎng)絡(luò)的速度提升和移動設(shè)備的普及,目前移動端市場正在以突飛猛進的速度滲透到用戶群當(dāng)中。越來越多的人開始使用移動端設(shè)備接入互聯(lián)網(wǎng)豐富日常生活[2]。在線購物、訂餐,訂房、訂票,到日常信息的獲取和交流,都可以利用移動設(shè)備完成。

    然而,移動端服務(wù)和業(yè)務(wù)規(guī)模的擴增對開發(fā)者而言卻是一件讓人頭疼的難事,因為傳統(tǒng)互聯(lián)網(wǎng)一直沒能很好地解決前后端耦合的問題[3]。前端由于接入設(shè)備種類的增加以及業(yè)務(wù)規(guī)模的愈發(fā)復(fù)雜化,導(dǎo)致人們強烈需要把前端從后端中解耦出來,讓前后端不僅從運行平臺上解開,更重要的是從代碼設(shè)計和架構(gòu)上實現(xiàn)完全的解耦。

    在這些基礎(chǔ)上,前人為了實現(xiàn)前后端解耦總結(jié)了許多實踐方法,但每解決一個問題往往會引入新的問題[4]。本文試圖引入一種新的模式,從根本上實現(xiàn)前后端的徹底解耦,并通過微信公眾號開發(fā)實現(xiàn)一個圖書借閱平臺的真實例子,驗證了所提出新模式的可行性與架構(gòu)方法。

    1 前后端解耦的問題描述

    Web軟件研發(fā)這一行業(yè),從互聯(lián)網(wǎng)誕生的那一刻開始誕生,開發(fā)模式也在不斷演進。從最初既做設(shè)計圖又要寫代碼,不分前后端一人通吃的蠻荒時代,到現(xiàn)在逐漸分工明確各司其職的現(xiàn)代化開發(fā)時代,Web行業(yè)正在以歷史上最快的速度向前發(fā)展。在這個歷史進程中,Web研發(fā)模式經(jīng)歷了如下階段。

    最初期可稱為Web初期,那時不區(qū)分前后端工程師,對于大部分公司而言,懂得技術(shù)的人才并不多,然而當(dāng)初的業(yè)務(wù)程度也沒有現(xiàn)在這么復(fù)雜。通常所有工作由一個小團隊即可完成,HTML內(nèi)容直接由JSP或者PHP等后端語言直接輸出,交給瀏覽器來呈現(xiàn),所有關(guān)于頁面的展示邏輯都由瀏覽器來負責(zé)[5]。瀏覽器端也很少參與業(yè)務(wù)邏輯,內(nèi)容完全由服務(wù)器端程序來決定。這種模式的方便之處就是業(yè)務(wù)邏輯十分簡單,業(yè)務(wù)核心依賴服務(wù)器端,代碼結(jié)構(gòu)簡單清晰,利于調(diào)試和編寫[6]。然而,一旦隨著業(yè)務(wù)規(guī)模的增長,過多摻雜了View層邏輯的服務(wù)器端代碼就會不斷增長,不但影響性能、效率,還嚴重制約程序開發(fā)的進度。服務(wù)器端的復(fù)雜度越來越大,為了解決問題,單純靠填補服務(wù)器端開發(fā)人員的數(shù)量也難以應(yīng)對龐大的服務(wù)器端代碼。

    這期間遇到的一些典型問題令許多人深有感觸,隨著服務(wù)逐漸增長,API調(diào)用關(guān)系變復(fù)雜,服務(wù)器端程序部署成為問題。后端人員對代碼做出修改后上線需要進行上線部署,而前端人員對頁面的細微調(diào)整也需要與后端人員進行溝通,提交代碼給后端進行處理,完成本地開發(fā),代碼合并,后端部署等諸多環(huán)節(jié)[7]。這導(dǎo)致前端的任務(wù)嚴重依賴于后端,沒有后端的前端程序完全無法獨立運行,制約著前后端之間開發(fā)進度的銜接。

    為了解決這種混亂不堪的開發(fā)狀況,誕生了一種耦合式的前后端解決方案,即前端人員書寫完頁面代碼之后,交給后端人員處理與數(shù)據(jù)庫的對接,讓前端人員給后端人員打下手,并且嚴格按照這種開發(fā)流程來執(zhí)行。雖然這種方式解開了前后端人員之間的工作任務(wù),但是并沒有解開前后端之間耦合的代碼[8]。

    到了Web 2.0時期,瀏覽器所呈現(xiàn)的內(nèi)容愈發(fā)豐富,各種Web應(yīng)用層出不窮,開始強調(diào)客戶端豐富的用戶交互,此時再把前后端耦合在一起顯然不合適。所以為了降低復(fù)雜度,開始在Web后端領(lǐng)域?qū)嵺`MVC開發(fā)模式。這一階段涌現(xiàn)出了一些非常優(yōu)秀的后端框架,比如RubyonRails,JavaSpring,Django等[9]。后端MVC強調(diào)模型、視圖和控制器職責(zé)的分離,而一直以來前端的工作都是與View層緊密相連的,所以后端可以完全專注于Model和Controller的開發(fā)工作,而前端則專注于View層頁面的開發(fā)。當(dāng)前端編寫完頁面模板之后,交給后端去渲染Model層的數(shù)據(jù)。雖然前后端各自的關(guān)注點分離了,但是依然沒有解決代碼耦合的問題。對于后端而言,Controller層和Model層糾纏不清,Model層又和View層糾纏不清。雖然后端MVC是一種非常優(yōu)秀的開發(fā)模式,但是前后端耦合這些根源問題依然沒有解決。

    隨著Google推動Ajax技術(shù)的發(fā)展,現(xiàn)在幾乎所有網(wǎng)站都有Ajax的身影,異步的JavaScript和XML技術(shù)給Web開發(fā)模式提供了全新的思路。服務(wù)器端單純以服務(wù)的模式提供數(shù)據(jù),View層完全獨立于后端的服務(wù),前端所需的數(shù)據(jù)都通過Ajax異步請求向服務(wù)器端獲取,頁面內(nèi)容的渲染工作全部由前端完成。這種模式下,前端與后端實現(xiàn)了完全的分離,交互的關(guān)鍵點就是Ajax接口,但是此時,服務(wù)器端的業(yè)務(wù)雖然降低了,但是前端的復(fù)雜度卻增加了。一切總歸是平衡的,后端所減輕的負擔(dān),現(xiàn)在全部施加到了前端上。這個階段,是前端工作人員最痛苦的時期,JavaScript走向了之前JSP和PHP走過的路,前端代碼陡增,前端嘗試引入框架來解決代碼邏輯問題,但前端的壓力依然很大[10]。

    到了最近一個階段,也是目前業(yè)界正在廣泛使用的一個模式,即在前端也部署MVC甚至MVVM這種大型軟件的構(gòu)建模式。這一階段前后端之間的代碼耦合已經(jīng)降低到最低,幾乎解除了Web開發(fā)之間的代碼耦合問題[11]。后端專注于業(yè)務(wù)邏輯的開發(fā),通過RESTful接口輸出數(shù)據(jù),前端只要遵從設(shè)計模式的標準,也可以應(yīng)對復(fù)雜的交互邏輯。但是方便的背后,也帶來了一些其他問題。比如全部異步的請求模式給前端編碼帶來難度,全部通過請求接口來渲染數(shù)據(jù)對搜索引擎也十分不友好,不方便爬取頁面數(shù)據(jù)。而且對于移動設(shè)備而言,尤其是手機,在網(wǎng)絡(luò)狀況不好的情況下,前端頁面需要等待網(wǎng)絡(luò)請求返回到結(jié)果才能呈現(xiàn)。對于前端SPA應(yīng)用,最重要的路由問題難以和后端調(diào)諧,長此以往路由都是交給后端處理的,但是現(xiàn)實的情況是前端對路由的依賴更加嚴重。

    展望未來,業(yè)界正在積極尋找一種新的解決方案,一個新的模式。既能解除Web開發(fā)面臨的耦合問題,又能讓前后端關(guān)注自己的職責(zé),并且彼此的功能劃分也更加細致。讓前端可以脫離于后端,讓后端可以專注于業(yè)務(wù)服務(wù)。隨著Node.js技術(shù)的發(fā)展,再一次為Web研發(fā)模式帶來了新的思路[12]。Node.js與前端共享開發(fā)語言,可以與前端實現(xiàn)高度的代碼重用,也賦予了JavaScript在服務(wù)器端執(zhí)行的能力。這種新的模式就是在傳統(tǒng)后端和前端之間,引入一個Node.js中間層來調(diào)和矛盾和彼此的缺失。以往所面臨的問題,隨著Node.js的引入都可以得到解決,所帶來的代價便是需要前端工程師對后端有更深入的理解,需要他們設(shè)計更多后端的知識,同時引入一個新層之后的通信效率略微下降。更多的制約可能是面臨新的技術(shù)解決方案時的擔(dān)憂,缺乏對新技術(shù)的實踐經(jīng)驗,無法短期內(nèi)改善大量的歷史代碼[13]。

    2 系統(tǒng)概述

    在傳統(tǒng)前后端之間引入一個Node.js中間層來調(diào)和前后端耦合問題,是本文提出的Web開發(fā)解耦問題的新方案。同時通過開發(fā)一個基于微信的圖書借閱平臺,來展示和驗證該方案的可行性[14]。

    所嘗試探索的途徑是在Web服務(wù)器上同時部署服務(wù)器程序和Node.js中間層,當(dāng)用戶請求前端頁面時,前端首先訪問Node.js中間層進行頁面關(guān)鍵數(shù)據(jù)的渲染,當(dāng)后續(xù)需要數(shù)據(jù)時即可跳過Node.js中間層直接請求后端。當(dāng)用戶進行頁面跳轉(zhuǎn)時,使用Node.js中間層和前端同步頁面路由,對于用戶的狀態(tài)管理等與業(yè)務(wù)邏輯不是強相關(guān)的服務(wù)也由Node.js來提供。依然會依賴Ajax技術(shù)來處理大量的數(shù)據(jù),除了引入Node.js之外,其他的前后端技術(shù)依然保持不變,變的是它們之間的組合關(guān)系。

    微信圖書借閱平臺提供添加圖書、借閱圖書、歸還圖書、瀏覽圖書等功能。用戶首次向書架貢獻自己的圖書時,使用添加圖書功能;當(dāng)用戶需要查看當(dāng)前書架圖書信息時,使用瀏覽圖書功能;當(dāng)用戶需要從書架上借閱圖書時,使用圖書借閱功能;當(dāng)用戶閱讀完圖書時,使用歸還圖書功能。

    微信圖書借閱平臺的使用流程有3個步驟。第1步:用戶關(guān)注微信圖書借閱平臺公眾號;第2步:用戶使用微信圖書借閱平臺的各個功能,包括添加圖書、瀏覽圖書、借閱圖書、歸還圖書;第3步:掃描圖書條形碼,完成圖書信息讀取,并確認圖書的添加、借閱、歸還等功能。

    目前微信平臺使用的廣泛度已家喻戶曉,作為即時通訊軟件,它還提供了開發(fā)平臺供開發(fā)者使用。因此,微信圖書借閱平臺基于微信,不需要下載任何軟件,只要用戶關(guān)注“微信圖書借閱平臺”公眾號,就可以使用平臺的圖書相關(guān)功能。微信圖書借閱平臺公眾號的主界面是由3個一級菜單組成,包括借閱圖書、歸還圖書、管理圖書。其中管理圖書菜單下還有2個二級菜單,包括添加圖書、瀏覽圖書。用戶第1次使用本平臺可能是要貢獻圖書的貢獻者用戶或者是借閱圖書的借閱者用戶,對于貢獻者,點擊管理圖書菜單下的添加圖書,并將圖書放入書架;對于需要借閱書籍的用戶,點擊借閱圖書菜單。用戶需要借閱書籍時,可以點擊瀏覽圖書,查看當(dāng)前書架上有哪些圖書,點擊具體的某本圖書,查看圖書相關(guān)信息。微信圖書借閱平臺并沒有圖書館手持款圖書條形碼掃描儀,但是,平臺使用微信的“掃一掃”功能,完成對圖書條形碼的掃描,從而獲取實體圖書的圖書信息。添加圖書、借閱圖書、歸還圖書的功能都需要獲取圖書信息,通過點擊功能菜單會自動轉(zhuǎn)到掃一掃界面。微信圖書借閱平臺的操作流程是關(guān)注“微信圖書借閱平臺”公眾號、選擇功能菜單、進入掃碼、完成操作確認。系統(tǒng)總體框圖如圖1所示。

    圖1 系統(tǒng)總體框圖Fig.1 Overall block diagram of the system

    3 系統(tǒng)設(shè)計

    3.1 概要設(shè)計

    3.1.1 整體設(shè)計

    1) 微信公眾號自定義菜單

    微信公眾號是用戶使用該圖書分享平臺的入口,公眾號底部的自定義菜單是引導(dǎo)用戶進行功能操作的入口,需要設(shè)置簡潔直觀的入口讓用戶快速了解菜單對應(yīng)的功能。

    2) 前端交互

    圖書分享和借閱應(yīng)該是一個非常便捷的操作,不應(yīng)當(dāng)涉及過多的交互步驟,使得各個功能一觸即達。

    3) Node.js中間層

    中間層的職責(zé)是前端與后端的橋梁,負責(zé)從后端獲取數(shù)據(jù)并渲染出頁面或進一步處理數(shù)據(jù)后傳遞給前端。

    系統(tǒng)架構(gòu)圖如圖2所示。

    圖2 系統(tǒng)架構(gòu)圖Fig.2 System architecture diagram

    3.1.2 模塊設(shè)計

    1)圖書借閱模塊

    圖書借閱模塊實現(xiàn)了圖書的借閱操作,讀者從書架上拿到圖書,通過掃描圖書背面的條形碼確認借閱完成借書操作,取走圖書。

    2)圖書歸還模塊

    圖書歸還模塊實現(xiàn)了圖書的歸還操作,當(dāng)讀者閱讀完畢后,掃描圖書條形碼后確認圖書歸還,然后將圖書歸回原位。

    3)圖書添加模塊

    圖書添加模塊實現(xiàn)了圖書的入庫操作,讀者拿出自己的圖書,掃描圖書條形碼后確認圖書歸還,然后將圖書放入書架。

    4)圖書瀏覽模塊

    圖書瀏覽模塊實現(xiàn)了瀏覽圖書信息的功能,用戶可以遠程查看書架上的書籍信息,包括書籍名等基本信息、書籍?dāng)?shù)量、書籍可借閱數(shù)量。

    3.2 詳細設(shè)計

    用戶進入微信后,關(guān)注公眾號進入公眾號界面,通過公眾號主頁底部的自定義菜單進入相關(guān)操作界面。點擊“借閱圖書”自動彈出二維碼讓用戶掃描書籍自動借閱;點擊“歸還圖書”自動彈出二維碼讓用戶掃面書籍自動歸還;點擊“添加圖書”自動彈出二維碼讓用戶掃描書籍完成添加;點擊“瀏覽圖書”跳轉(zhuǎn)到設(shè)定的網(wǎng)頁瀏覽當(dāng)前書庫的所有書目。

    3.2.1 微信公眾號設(shè)置

    申請個人公眾訂閱號和商業(yè)公眾企業(yè)號的用戶,首先需要到微信官網(wǎng)注冊賬號,個人公眾訂閱號用戶需要提供證件申請實名認證,商業(yè)公眾企業(yè)號用戶需要提供商業(yè)資質(zhì)證明。等待申請結(jié)果成功后,用戶們便可以通過微信搜索功能搜索公眾號名字,查看詳情后關(guān)注該微信公眾號。

    在微信后臺配置微信與自己的服務(wù)器之間的連接,從而打通從用戶到微信服務(wù)器再到個人服務(wù)器之間的消息傳遞,并將處理后的結(jié)果回傳給微信服務(wù)器,最終轉(zhuǎn)發(fā)到用戶的微信客戶端上。

    微信圖書借閱平臺通過企業(yè)公眾號底部的自定義菜單欄,分別引導(dǎo)用戶至不同的功能,與用戶完成交互。菜單欄分為一級菜單和二級菜單,本平臺使用借閱圖書、歸還圖書、管理圖書3個一級菜單,管理圖書下有添加圖書、瀏覽圖書2個二級菜單。

    3.2.2 獲取圖書信息

    實現(xiàn)一個圖書數(shù)據(jù)庫的工作量非常龐大,涉及到市面上所有已有圖書的信息采集入庫操作。為了便利地獲取圖書信息,采用豆瓣開放的公共圖書API接口實現(xiàn)圖書信息查詢功能。用戶首先打開微信進入公眾號界面,通過公眾號底部菜單中的“添加圖書”菜單,點擊后自動轉(zhuǎn)至圖書條形碼掃描界面,用戶掃描圖書背面的條形碼后,微信將識別出條形碼中包含的ISBN號并回傳給前端程序。前端程序?qū)SBN回傳給Node.js中間層服務(wù)器,Node.js向豆瓣開放API服務(wù)器發(fā)送RESTful請求,附帶著圖書的ISBN信息,取得圖書信息(圖書名、圖書封面圖片鏈接、圖書內(nèi)容摘要、作者、出版社等)。

    3.2.3 存儲圖書信息

    所有圖書的信息都通過自豆瓣的開放API接口服務(wù)獲得,每當(dāng)采集到一本圖書的信息,便會執(zhí)行一次圖書信息的存儲任務(wù),將圖書信息存入服務(wù)器本地數(shù)據(jù)庫中。這樣做的原因是,一方面便于再次獲取圖書信息時,可以快速查詢圖書結(jié)果,另一方面將初次獲取后的信息按照關(guān)系存入本地數(shù)據(jù)庫,有利于信息的統(tǒng)計和變更。

    在取得圖書信息后,用戶點擊確認按鈕,圖書的書名、ISBN號、作者、出版社、封面、摘要等信息會存儲到數(shù)據(jù)庫中,并附加與借閱相關(guān)的圖書信息,比如圖書庫存量、借閱次數(shù)、當(dāng)前借閱者的信息等等。

    3.2.4 展示圖書信息

    Node.js中間層在取得圖書信息后,根據(jù)預(yù)先定義的Jade模板渲染出圖書界面的HTML內(nèi)容。微信用戶內(nèi)置的WebView控件在收到HTML內(nèi)容后,渲染內(nèi)容,加載圖書封面等靜態(tài)資源,經(jīng)過CSS樣式表處理后渲染出圖書展示界面。圖書信息的展示工作完全由Node.js中間層負責(zé),當(dāng)用戶在圖書頁面之間跳轉(zhuǎn)時,均直接請求Node.js中間層服務(wù)器,交由Node.js選擇指定的Jade模板渲染內(nèi)容[15]。

    3.3 概念設(shè)計

    微信圖書借閱系統(tǒng)的正常使用需要有正確的數(shù)據(jù)庫讀取操作,數(shù)據(jù)庫設(shè)計的優(yōu)劣與否關(guān)系到系統(tǒng)能否運行流暢[16-17]。微信圖書借閱系統(tǒng)的數(shù)據(jù)庫設(shè)計主要分為概念結(jié)構(gòu)設(shè)計和物理結(jié)構(gòu)設(shè)計,概念結(jié)構(gòu)設(shè)計主要分析實體關(guān)系,以E-R圖形象地展示實體關(guān)系。物理結(jié)構(gòu)設(shè)計將實體關(guān)系轉(zhuǎn)化成數(shù)據(jù)庫中表的關(guān)系,以及表結(jié)構(gòu)中各個字段的設(shè)置。

    微信圖書借閱系統(tǒng)的實體是各個用戶,用戶之間的地位平等,每個用戶都可以貢獻圖書、借閱圖書、查看圖書借閱情況。本系統(tǒng)的數(shù)據(jù)庫E-R圖如圖3所示。

    圖3 系統(tǒng)E-R圖Fig.3 System E-R diagram

    本系統(tǒng)使用的數(shù)據(jù)庫是MySQL數(shù)據(jù)庫,設(shè)計時充分考慮了程序處理的要求、應(yīng)用環(huán)境的需求,斟酌數(shù)據(jù)庫表結(jié)構(gòu)和字段設(shè)置,考慮數(shù)據(jù)庫各表中的字段類型和長度,盡可能提前預(yù)估到可能出現(xiàn)的問題,避免程序設(shè)計過程中帶來不必要的麻煩[18]。MySQL數(shù)據(jù)庫中,凡字段為varchar或char類型時,需要指定編碼方式為UTF-8,本系統(tǒng)對以上2種類型數(shù)據(jù)全部設(shè)置為UTF-8編碼方式。

    微信圖書借閱系統(tǒng)共設(shè)計了3張表,分別是圖書表(Books)、用戶表(Users)、借閱表(Borrowing)。圖書表存放從豆瓣開放API接口獲取到的圖書信息,用戶表存放微信的用戶賬號信息,借閱表是一張關(guān)聯(lián)表,關(guān)聯(lián)了用戶借閱圖書的信息。所有功能均采用這3張表實現(xiàn)。

    4 圖書借閱平臺的實現(xiàn)

    本文設(shè)計的微信圖書借閱平臺是一個完整的B/S架構(gòu)的實現(xiàn),在服務(wù)器端通過Nginx監(jiān)聽用戶請求并分發(fā)請求給StrongLoop進程管理器,StrongLoop創(chuàng)建多個slave進程維護Node.js實例來處理用戶請求,Node.js作為中間層可以構(gòu)建在任何其他語言的后端之上,通過基于RESTful規(guī)則設(shè)計的接口可以建立Node.js中間層與其他后端語言的數(shù)據(jù)通信[19-20]。數(shù)據(jù)庫采用MySQL、通過Jade模板引擎實現(xiàn)服務(wù)端HTML預(yù)渲染、在客戶端通過微信內(nèi)置的Blink內(nèi)核的WebView作為與用戶交互的入口、UI效果展示采用Bootstrap、CSS界面庫快速制作移動端友好的響應(yīng)式界面[21-22]。

    該平臺的各功能界面如圖4—圖7所示。

    圖4 圖書列表Fig.4 List of books

    圖5 掃一掃添加圖書Fig.5 Swipe to add books

    圖6 借閱圖書Fig.6 Borrow books

    圖7 歸還圖書Fig.7 Return books

    5 結(jié) 語

    本文在分析傳統(tǒng)Web研發(fā)領(lǐng)域互聯(lián)網(wǎng)前、后端Web軟件開發(fā)的基礎(chǔ)上,提出引入Node.js作為中間層以解除前后端之間的耦合關(guān)系新的解決方案,并設(shè)計新的架構(gòu)模式指導(dǎo)Web軟件開發(fā),從而達到提高開發(fā)效率、提升代碼靈活性、明確開發(fā)人員工作職責(zé)等目的,并在此研究基礎(chǔ)上實現(xiàn)一個基于微信的圖書借閱平臺作為可行性檢驗的依據(jù)。該圖書借閱平臺使用微信作為前端執(zhí)行環(huán)境,提供圖書借閱、圖書歸還、圖書入庫、圖書瀏覽功能。系統(tǒng)采用 B/S 架構(gòu),Node.js 中間層和后端程序在服務(wù)器中運行,用戶關(guān)注微信公眾號后,可以通過微信聊天窗口接收服務(wù)器端訊息,也可以通過公眾號菜單導(dǎo)航到前端界面,完成圖書借閱分享操作,交互方式高效簡潔。

    /References:

    [1] 李張永,陳和平,顧進廣.跨平臺移動Web開發(fā)框架與數(shù)據(jù)交互方法[J].計算機工程與設(shè)計,2014,35(5): 1827-1832. LI Zhangyong, CHEN Heping, GU Jinguang. Cross-platform mobile Web development framework and data interactive method[J]. Computer Engineering and Design, 2014, 35(5): 1827-1832.

    [2] 周東星,李心科.基于MVC和AJAX的Web開發(fā)模型的設(shè)計與應(yīng)用[J].合肥工業(yè)大學(xué)學(xué)報(自然科學(xué)版),2008,31(9): 1438-1442. ZHOU Dongxing, LI Xinke. Design and application of a Web development model based on MVC and AJAX[J]. Journal of Hefei University of Technology(Natural Science), 2008, 31(9): 1438-1442.

    [3] 王準,夏陽.基于Ruby on Rails的WEB開發(fā)新技術(shù)[J].微計算機信息,2007,23(10-3): 218-220. WANG Zhun, XIA Yang. New technology of Web development: Ruby on Rails[J]. Microcomputer Information, 2007, 23(10-3): 218-220.

    [4] 潘曉夢,鄧建華,蘇厚勤.一種跨平臺移動應(yīng)用方案的研究與實踐[J].計算機應(yīng)用與軟件,2013,30(1): 180-182. PAN Xiaomeng, DENG Jianhua, SU Houqin. Study and practice of a cross-platform mobile application solution[J]. Computer Applications and Software, 2013, 30(1): 180-182.

    [5] 武佳佳,王建忠.基于HTML5實現(xiàn)智能手機跨平臺應(yīng)用開發(fā)[J].軟件導(dǎo)刊,2013,12(2): 66-68.

    [6] CHARLAN A, LEROUX B. Mobile application development: Web vs. native[J]. Communicaitons of the ACM, 2011, 54(5): 49-53.

    [7] 鹿旭東,萬建成.Web應(yīng)用開發(fā)方法研究[J].計算機工程與應(yīng)用,2006(13): 97-101. LU Xudong, WAN Jiancheng. Study of development method-logy in Web applications[J]. Computer Engineering and Applications, 2006(13): 97-101.

    [8] 孟凡寧,叢中昌,黃志興,等.移動互聯(lián)網(wǎng)應(yīng)用跨平臺開發(fā)研究[J].移動通信,2013(13): 60-63.

    [9] 陳樺,杜啟宏,程剛.移動智能終端Web應(yīng)用平臺開發(fā)技術(shù)研究[J].移動通信,2013(5):23-26.

    [10]陳必峰.基于AJAX的富客戶端技術(shù)及應(yīng)用[J].計算機科學(xué), 2011, 38(sup1): 419-420. CHEN Bifeng.Technology and application of rich client based on AJAX[J].Computer Science, 2011, 38(sup1): 419-420.

    [11]WILLIAMS N S. Java Web高級編程[M].王肖峰,譯.北京:清華大學(xué)出版社,2015.

    [12]張煜.一種使用Node.js構(gòu)建的分布式數(shù)據(jù)流日志服務(wù)系統(tǒng)[J].計算機系統(tǒng)應(yīng)用,2013,22(2): 68-71. ZHANG Yu. Distributed data stream log service system built with Node.js[J]. Computer Systems & Applications, 2013, 22(2): 68-71.

    [13]SIMONM. Introduction to Ajax: Client Server Communications on the Web[M]. [S.l.]:Oreilly & Associates Inc, 2016.

    [14]羅皓,李敏,彭康明.Web開發(fā)中模版引擎方案的實現(xiàn)[J].計算機工程與設(shè)計, 2010,31(7):1606-1608. LUO Hao, LI Min, PENG Kangming.Realization of template engines for Web development process[J].Computer Engineering and Design, 2010,31(7): 1606-1608.

    [15]孟晨,趙春亮,張建國.泛型DAO模式在Java Web開發(fā)中的應(yīng)用[J].計算機應(yīng)用與軟件, 2012, 29(1): 175-177. MENG Chen, ZHAO Chunliang, ZHANG Jianguo.Applying generic DAO pattern Java Web development[J].Computer Applications and Software,2012,29(1): 175-177.

    [16]李小平,肖岳峰,宿元,等.基于J2EE多層架構(gòu)的Web開發(fā)框架研究[J].計算機應(yīng)用研究, 2008, 25(5): 1429-1431. LI Xiaoping, XIAO Yuefeng, SU Yuan, et al.Study of Web-based framework based on J2EE multi-tier architecture[J].Application Research of Computers, 2008, 25(5): 1429-1431.

    [17]張亭. 基于Struts和Hibernate架構(gòu)的渲染集群管理系統(tǒng) Web Portal的開發(fā)[J]. 河北工業(yè)科技,2013,30(4):253-256. ZHANG Ting. Development of Web Portal based on Struts and Hibernate[J]. Hebei Journal of Industrial Science and Technology, 2013,30(4):253-256.

    [18]繆亞波,趙軼群.一種針對復(fù)雜交互界面應(yīng)用的Web開發(fā)框架[J].計算機應(yīng)用, 2004,24(2): 154-156. MIAO Yabo, ZHAO Yiqun.A framework of Web development for complex user-interface application[J].Computer Applications, 2004,24(2): 154-156.

    [19]任喜偉,陳長明,苗新強.基于Caché的三層結(jié)構(gòu)Web開發(fā)模式的研究[J].計算機測量與控制, 2009, 17(9): 1793-1794. REN Xiwei, CHEN Changming, MIAO Xinqiang.Research three-tier structure of Web development mode based on Caché[J].Computer Measurement & Control, 2009, 17(9): 1793-1794.

    [20]樓樹美,李淑玉.動態(tài)WEB開發(fā)下大型交互網(wǎng)站BBS的設(shè)計分析[J].科技通報, 2014, 30(2): 164-166. LOU Shumei, LI Shuyu.Large interactive website BBS design under dynamic WEB development[J].Bulletin of Science and Technology, 2014, 30(2): 164-166.

    [21]鄭廣成. ASP.NET中AWSMVC架構(gòu)模式研究[J] . 河北科技大學(xué)學(xué)報,2011,32(6):598-604. ZHENG Guangcheng. Research in AWSMVC framework pattern in ASP.NET[J]. Journal of Hebei University of Science and Technology, 2011,32(6):598-604.

    [22]王志剛.PHP5應(yīng)用實例詳解:使用Zend Framework & Smarty構(gòu)筑真正的MVC模式應(yīng)用[M].北京:電子工業(yè)出版社,2010.

    Research and realization of Web development based on Node.js middle layer: Taking Wechat book sharing platform as an example

    QIU Jing, HUANG Yan, CHAI Yuhan

    (School of Information Science and Engineering, Hebei University of Science and Technology, Shijiazhuang, Hebei 050018, China)

    Front-end and back-end's code coupling together is a historical problem in Web development area. In this paper, a new solution of Web development is proposed to decoupling connections between front-end and back-end, where Node.js is used as middle layer. A new architecture is also introduced to point the new way of creating web apps, which can enhance efficiency and extend flexibility of development, and make the duty of programmer more clear. To prove the feasibility of our method, a Wechat book sharing platform is developed based on this idea. The platform provides book borrowing, book returning, book checkin and book browsing functionalities and runs on Wechat environment. The platform is based on B/S architecture, and Node.js acts as middle layer on server. Users may receive notifications in Wechat's chatting interface or redirect to front-end webview page by clicking Wechat public accounts' custom menu bar, accomplishing sharing operation of book lending and borrowing, which is convenient and efficient.

    computer network; Web development; coupling and decoupling; Node.js; middle layer; mobile terminal

    1008-1534(2017)02-0118-07

    2016-10-26;

    2017-03-01;責(zé)任編輯:陳書欣

    國家自然科學(xué)基金(61300120)

    仇 晶(1983—),女,河北石家莊人,副教授,博士,主要從事機器學(xué)習(xí)和Web服務(wù)方面的研究。

    黃 巖。E-mail:ryerh@qq.com

    TP311.5

    A

    10.7535/hbgykj.2017yx02008

    仇 晶,黃 巖,柴瑜晗.基于Node.js中間層Web開發(fā)的研究與實現(xiàn)——以微信圖書借閱平臺為例[J].河北工業(yè)科技,2017,34(2):118-124. QIU Jing,HUANG Yan, CHAI Yuhan.Research and realization of Web development based on Node.js middle layer:Taking Wechat book sharing platform as an example[J].Hebei Journal of Industrial Science and Technology,2017,34(2):118-124.

    猜你喜歡
    中間層服務(wù)器端菜單
    中國新年菜單
    淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
    成功(2018年10期)2018-03-26 02:56:14
    本月菜單
    美食堂(2017年1期)2017-01-13 01:37:42
    鎳基高溫合金TLP擴散焊中間層材料研究進展
    焊接(2016年8期)2016-02-27 13:05:10
    B含量對IC10合金TLP焊接用中間層材料及接頭組織的影響
    焊接(2016年6期)2016-02-27 13:04:55
    在Windows中安裝OpenVPN
    社會中間層建設(shè)與活動機制網(wǎng)研究
    一個“公海龜”的求偶菜單
    鴨綠江(2013年10期)2013-03-11 19:41:55
    柵格中間層數(shù)據(jù)在數(shù)字地形分析中的應(yīng)用
    網(wǎng)頁防篡改中分布式文件同步復(fù)制系統(tǒng)
    丰满乱子伦码专区| 香蕉精品网在线| videos熟女内射| 国产成人精品福利久久| 91国产中文字幕| √禁漫天堂资源中文www| 久久午夜福利片| 如何舔出高潮| 亚洲国产日韩一区二区| 伊人亚洲综合成人网| 国产成人91sexporn| 欧美性感艳星| 成人二区视频| 岛国毛片在线播放| 日本wwww免费看| 免费观看性生交大片5| 99热全是精品| 国产成人午夜福利电影在线观看| 国产精品国产三级专区第一集| 日韩中文字幕视频在线看片| 婷婷色综合www| 女人被躁到高潮嗷嗷叫费观| 国产精品熟女久久久久浪| 另类亚洲欧美激情| 国产成人精品福利久久| 熟女电影av网| 婷婷色麻豆天堂久久| 国产成人精品无人区| 男女免费视频国产| 在线观看免费日韩欧美大片| 成人黄色视频免费在线看| 国产麻豆69| 大码成人一级视频| 18禁裸乳无遮挡动漫免费视频| 观看av在线不卡| 日韩伦理黄色片| 国产一区亚洲一区在线观看| 少妇人妻 视频| 久久青草综合色| 超碰97精品在线观看| 久久av网站| 国产极品天堂在线| 天美传媒精品一区二区| 晚上一个人看的免费电影| 久久久久久久久久成人| 久久久久精品久久久久真实原创| 丰满少妇做爰视频| 少妇精品久久久久久久| 亚洲欧美一区二区三区黑人 | 男女高潮啪啪啪动态图| 啦啦啦啦在线视频资源| av有码第一页| 色婷婷av一区二区三区视频| 老司机亚洲免费影院| 国产色婷婷99| 男女啪啪激烈高潮av片| 免费大片18禁| 欧美3d第一页| 日韩熟女老妇一区二区性免费视频| av免费观看日本| 精品少妇久久久久久888优播| 久久精品久久久久久久性| 97超碰精品成人国产| 亚洲一区二区三区欧美精品| 久久影院123| 天堂俺去俺来也www色官网| a级片在线免费高清观看视频| 亚洲av中文av极速乱| 黑人猛操日本美女一级片| 大香蕉97超碰在线| 国产又色又爽无遮挡免| 欧美日韩精品成人综合77777| 啦啦啦中文免费视频观看日本| 欧美 日韩 精品 国产| 国产在线视频一区二区| 七月丁香在线播放| 97人妻天天添夜夜摸| 久久久精品免费免费高清| 亚洲激情五月婷婷啪啪| 丰满迷人的少妇在线观看| 麻豆精品久久久久久蜜桃| 亚洲久久久国产精品| 午夜av观看不卡| 日日摸夜夜添夜夜爱| 成年av动漫网址| 90打野战视频偷拍视频| 欧美精品国产亚洲| 国产69精品久久久久777片| 亚洲,欧美,日韩| 波多野结衣一区麻豆| 青青草视频在线视频观看| 国产精品久久久久久久久免| 人体艺术视频欧美日本| 色哟哟·www| 少妇熟女欧美另类| 久久精品国产亚洲av涩爱| av福利片在线| 99久久精品国产国产毛片| 国产日韩欧美在线精品| 亚洲av中文av极速乱| 国产成人av激情在线播放| 飞空精品影院首页| 女人久久www免费人成看片| 国产精品秋霞免费鲁丝片| 午夜老司机福利剧场| 91成人精品电影| 男女下面插进去视频免费观看 | 国产精品人妻久久久久久| 汤姆久久久久久久影院中文字幕| 久久韩国三级中文字幕| 天天影视国产精品| 丝袜人妻中文字幕| xxxhd国产人妻xxx| 国产乱人偷精品视频| 肉色欧美久久久久久久蜜桃| 一级片'在线观看视频| 日韩 亚洲 欧美在线| 国产午夜精品一二区理论片| 国产国语露脸激情在线看| 大片免费播放器 马上看| 又黄又爽又刺激的免费视频.| av网站免费在线观看视频| 亚洲欧洲精品一区二区精品久久久 | 最近中文字幕2019免费版| 各种免费的搞黄视频| 97人妻天天添夜夜摸| 免费在线观看完整版高清| 最黄视频免费看| 美女内射精品一级片tv| 考比视频在线观看| 欧美精品一区二区免费开放| 一区二区三区乱码不卡18| 一级爰片在线观看| 男人操女人黄网站| 日韩免费高清中文字幕av| 日韩视频在线欧美| 亚洲色图 男人天堂 中文字幕 | 精品少妇黑人巨大在线播放| 黑人高潮一二区| 日韩 亚洲 欧美在线| 亚洲在久久综合| 菩萨蛮人人尽说江南好唐韦庄| 国产精品久久久久成人av| 精品人妻在线不人妻| 亚洲美女黄色视频免费看| 高清不卡的av网站| 亚洲丝袜综合中文字幕| 久久精品久久久久久噜噜老黄| 久久精品国产综合久久久 | 久久青草综合色| 乱码一卡2卡4卡精品| 久久99一区二区三区| 久久ye,这里只有精品| 欧美成人精品欧美一级黄| 成人亚洲欧美一区二区av| 日韩av免费高清视频| 在线观看www视频免费| 亚洲人成77777在线视频| 777米奇影视久久| 一边摸一边做爽爽视频免费| 在线天堂最新版资源| www.熟女人妻精品国产 | xxx大片免费视频| 99热这里只有是精品在线观看| 成人免费观看视频高清| 男女高潮啪啪啪动态图| 国产又爽黄色视频| av播播在线观看一区| 美女内射精品一级片tv| 人妻一区二区av| 日韩制服骚丝袜av| a级毛色黄片| 色94色欧美一区二区| 国产成人精品婷婷| 久久久久久人妻| 国产成人精品无人区| 国产成人av激情在线播放| 精品亚洲成a人片在线观看| 欧美精品人与动牲交sv欧美| 日韩欧美精品免费久久| 国产精品人妻久久久久久| 亚洲美女视频黄频| 三级国产精品片| 老司机影院毛片| 国产激情久久老熟女| 国产成人欧美| 伊人亚洲综合成人网| 看免费av毛片| 国产精品久久久av美女十八| 99热国产这里只有精品6| 国产精品嫩草影院av在线观看| 日韩欧美一区视频在线观看| 少妇人妻久久综合中文| 麻豆乱淫一区二区| 男女免费视频国产| av国产久精品久网站免费入址| 久久狼人影院| 亚洲欧洲国产日韩| 黄网站色视频无遮挡免费观看| 国产精品一区二区在线观看99| 免费久久久久久久精品成人欧美视频 | 久久国产精品男人的天堂亚洲 | 新久久久久国产一级毛片| 2022亚洲国产成人精品| 99久国产av精品国产电影| 亚洲,欧美精品.| 桃花免费在线播放| 如何舔出高潮| 久久99精品国语久久久| 女性被躁到高潮视频| 亚洲国产日韩一区二区| 久久久久人妻精品一区果冻| 天天影视国产精品| 菩萨蛮人人尽说江南好唐韦庄| 熟女人妻精品中文字幕| 在线天堂最新版资源| 久久人人爽av亚洲精品天堂| 在线观看免费视频网站a站| 两性夫妻黄色片 | 国产在线视频一区二区| 久久ye,这里只有精品| 新久久久久国产一级毛片| av在线观看视频网站免费| av国产久精品久网站免费入址| 日韩在线高清观看一区二区三区| xxx大片免费视频| 女人被躁到高潮嗷嗷叫费观| 超色免费av| 美国免费a级毛片| 久久av网站| av又黄又爽大尺度在线免费看| 免费看av在线观看网站| 久久久亚洲精品成人影院| 大片免费播放器 马上看| 97超碰精品成人国产| 中国三级夫妇交换| 熟妇人妻不卡中文字幕| 国产精品国产三级专区第一集| 婷婷色综合www| 捣出白浆h1v1| 中文字幕最新亚洲高清| 日韩一区二区视频免费看| 久久久久精品久久久久真实原创| 亚洲成人一二三区av| 亚洲精品aⅴ在线观看| 免费观看无遮挡的男女| 午夜视频国产福利| 在线观看三级黄色| 老女人水多毛片| 成人黄色视频免费在线看| 丝袜脚勾引网站| 90打野战视频偷拍视频| av在线播放精品| 一区二区日韩欧美中文字幕 | 久久久久久久大尺度免费视频| 国产永久视频网站| 在现免费观看毛片| 熟女电影av网| 王馨瑶露胸无遮挡在线观看| 久久精品国产亚洲av涩爱| 亚洲欧洲日产国产| 男人添女人高潮全过程视频| 日韩精品有码人妻一区| 国产精品久久久久久精品古装| 交换朋友夫妻互换小说| 色婷婷久久久亚洲欧美| 在线天堂最新版资源| 久久97久久精品| 国产精品国产av在线观看| 最近最新中文字幕免费大全7| 晚上一个人看的免费电影| 婷婷色麻豆天堂久久| 国产亚洲精品久久久com| 伦理电影大哥的女人| 丰满乱子伦码专区| 日韩欧美一区视频在线观看| 中国三级夫妇交换| videos熟女内射| 看非洲黑人一级黄片| a级毛色黄片| 国产女主播在线喷水免费视频网站| 精品卡一卡二卡四卡免费| 人妻一区二区av| 色哟哟·www| 国产色爽女视频免费观看| av免费观看日本| 亚洲精品第二区| 国产福利在线免费观看视频| 中文字幕精品免费在线观看视频 | 曰老女人黄片| 午夜福利在线观看免费完整高清在| 中文字幕av电影在线播放| 国产又色又爽无遮挡免| 又粗又硬又长又爽又黄的视频| 亚洲美女搞黄在线观看| 日韩不卡一区二区三区视频在线| 飞空精品影院首页| 欧美人与性动交α欧美精品济南到 | 大片免费播放器 马上看| 亚洲精品美女久久久久99蜜臀 | 日韩制服丝袜自拍偷拍| 久久免费观看电影| 在线观看免费高清a一片| 亚洲人成网站在线观看播放| 多毛熟女@视频| 巨乳人妻的诱惑在线观看| 美女国产视频在线观看| 男女午夜视频在线观看 | 久久精品熟女亚洲av麻豆精品| 99热网站在线观看| av黄色大香蕉| 成人国产av品久久久| 大香蕉97超碰在线| 天堂中文最新版在线下载| av国产久精品久网站免费入址| 在线天堂中文资源库| 成人18禁高潮啪啪吃奶动态图| 亚洲丝袜综合中文字幕| 日本猛色少妇xxxxx猛交久久| 久久久a久久爽久久v久久| 视频区图区小说| 另类精品久久| 欧美精品一区二区免费开放| 亚洲精品中文字幕在线视频| 国产精品一国产av| 国产精品久久久久久久久免| 国产亚洲精品久久久com| 午夜免费男女啪啪视频观看| 99热国产这里只有精品6| 国产老妇伦熟女老妇高清| 18+在线观看网站| 婷婷色综合大香蕉| 国产1区2区3区精品| 久久久a久久爽久久v久久| 久久久久久久久久久久大奶| 欧美日韩视频高清一区二区三区二| 999精品在线视频| 波野结衣二区三区在线| 中国三级夫妇交换| 热re99久久精品国产66热6| 国产男女超爽视频在线观看| 国产精品国产三级国产av玫瑰| 少妇人妻精品综合一区二区| 亚洲经典国产精华液单| 一本—道久久a久久精品蜜桃钙片| 久久久久国产精品人妻一区二区| 久久国产精品大桥未久av| 青春草亚洲视频在线观看| 人妻 亚洲 视频| 精品久久国产蜜桃| 精品人妻在线不人妻| 九色成人免费人妻av| 国产又爽黄色视频| 一级a做视频免费观看| 精品视频人人做人人爽| 国产亚洲午夜精品一区二区久久| 亚洲精品久久成人aⅴ小说| xxx大片免费视频| 国产又爽黄色视频| 精品久久国产蜜桃| 18+在线观看网站| 中文字幕最新亚洲高清| 另类亚洲欧美激情| 七月丁香在线播放| 美国免费a级毛片| 午夜免费鲁丝| 国产精品嫩草影院av在线观看| 久久久精品免费免费高清| 国产一区二区三区av在线| 一二三四在线观看免费中文在 | 插逼视频在线观看| 中文字幕最新亚洲高清| 中文字幕免费在线视频6| 99视频精品全部免费 在线| 国产片内射在线| 熟妇人妻不卡中文字幕| 午夜福利网站1000一区二区三区| 久久久久久久精品精品| 一级爰片在线观看| 超色免费av| 五月天丁香电影| 亚洲国产日韩一区二区| 国产欧美另类精品又又久久亚洲欧美| 国产精品国产三级国产专区5o| 国产精品久久久久久久电影| 色视频在线一区二区三区| 精品视频人人做人人爽| 极品人妻少妇av视频| 婷婷色av中文字幕| 一级片免费观看大全| 亚洲国产最新在线播放| kizo精华| 黄色怎么调成土黄色| 黄色一级大片看看| 午夜老司机福利剧场| av.在线天堂| 国产片特级美女逼逼视频| 母亲3免费完整高清在线观看 | 纯流量卡能插随身wifi吗| 日韩精品有码人妻一区| 丝袜喷水一区| 少妇的逼好多水| 成人午夜精彩视频在线观看| 黑人欧美特级aaaaaa片| 女人久久www免费人成看片| 精品国产国语对白av| 国产精品久久久久久久电影| 午夜激情av网站| 丝袜人妻中文字幕| 婷婷色av中文字幕| 国产精品秋霞免费鲁丝片| 涩涩av久久男人的天堂| 国产男女内射视频| 一本一本久久a久久精品综合妖精 国产伦在线观看视频一区 | 天堂俺去俺来也www色官网| 欧美亚洲 丝袜 人妻 在线| 久久久精品区二区三区| 哪个播放器可以免费观看大片| 女的被弄到高潮叫床怎么办| 一级毛片 在线播放| 欧美97在线视频| www.熟女人妻精品国产 | 咕卡用的链子| 中文天堂在线官网| 热re99久久精品国产66热6| 婷婷色综合大香蕉| 精品亚洲成国产av| 国产精品三级大全| 91精品三级在线观看| 91精品国产国语对白视频| 色网站视频免费| 亚洲精品日本国产第一区| 91午夜精品亚洲一区二区三区| 日韩一区二区三区影片| 视频区图区小说| 久久久a久久爽久久v久久| 国产激情久久老熟女| a级片在线免费高清观看视频| 久久99热这里只频精品6学生| 国产在线免费精品| 大香蕉97超碰在线| 蜜臀久久99精品久久宅男| 黄色 视频免费看| 日韩不卡一区二区三区视频在线| 免费少妇av软件| 97在线视频观看| 尾随美女入室| 好男人视频免费观看在线| 日本黄大片高清| 久久人人爽人人片av| 观看av在线不卡| 精品人妻一区二区三区麻豆| √禁漫天堂资源中文www| 国产成人一区二区在线| 大片免费播放器 马上看| 亚洲国产精品一区二区三区在线| a级毛色黄片| 又大又黄又爽视频免费| 亚洲第一av免费看| 两个人看的免费小视频| 波野结衣二区三区在线| a 毛片基地| 制服诱惑二区| videos熟女内射| 国产亚洲午夜精品一区二区久久| 久久久久精品人妻al黑| 精品久久久精品久久久| 国产精品 国内视频| 免费看av在线观看网站| 一级毛片 在线播放| 日韩欧美一区视频在线观看| 在线精品无人区一区二区三| 国产1区2区3区精品| 亚洲第一区二区三区不卡| 99热6这里只有精品| 日韩伦理黄色片| 国产精品久久久av美女十八| 两个人看的免费小视频| 国产av精品麻豆| av女优亚洲男人天堂| 国产精品无大码| 97在线人人人人妻| 男女国产视频网站| 国产白丝娇喘喷水9色精品| 国内精品宾馆在线| 两性夫妻黄色片 | 最黄视频免费看| 国产精品麻豆人妻色哟哟久久| 男女国产视频网站| 国产免费现黄频在线看| 午夜激情av网站| 69精品国产乱码久久久| 久久久国产欧美日韩av| 成人漫画全彩无遮挡| 免费高清在线观看日韩| 人妻少妇偷人精品九色| 婷婷色综合大香蕉| 精品一区二区三卡| 久久精品久久精品一区二区三区| 精品熟女少妇av免费看| 妹子高潮喷水视频| 亚洲精品乱久久久久久| 亚洲,欧美,日韩| 美国免费a级毛片| freevideosex欧美| 日日啪夜夜爽| 免费观看a级毛片全部| videos熟女内射| 国产高清国产精品国产三级| 波野结衣二区三区在线| 少妇 在线观看| 日韩伦理黄色片| 久久狼人影院| 久久精品久久精品一区二区三区| 寂寞人妻少妇视频99o| 成人二区视频| 亚洲成国产人片在线观看| 亚洲精品一二三| 久久精品国产综合久久久 | 久久久久久人妻| 国产精品免费大片| 岛国毛片在线播放| 欧美日韩av久久| 免费在线观看黄色视频的| 亚洲国产看品久久| av在线播放精品| 男女下面插进去视频免费观看 | 国产精品人妻久久久影院| 久久亚洲国产成人精品v| 午夜老司机福利剧场| 这个男人来自地球电影免费观看 | 国产精品久久久久久精品古装| 一本—道久久a久久精品蜜桃钙片| 久久亚洲国产成人精品v| 性色avwww在线观看| 大香蕉久久成人网| 国产高清三级在线| 亚洲精品久久午夜乱码| 亚洲精品aⅴ在线观看| 中文字幕亚洲精品专区| av又黄又爽大尺度在线免费看| 精品少妇黑人巨大在线播放| 成年人午夜在线观看视频| 看非洲黑人一级黄片| 日韩一区二区视频免费看| 国产成人a∨麻豆精品| 母亲3免费完整高清在线观看 | 日韩欧美一区视频在线观看| 精品少妇内射三级| 国产黄色免费在线视频| 老女人水多毛片| 综合色丁香网| 高清黄色对白视频在线免费看| 丝袜在线中文字幕| 国产成人精品婷婷| 久久久久久久久久久免费av| 99热全是精品| 18禁裸乳无遮挡动漫免费视频| 99国产精品免费福利视频| 日本欧美国产在线视频| 最黄视频免费看| 国产av一区二区精品久久| 国产精品久久久久久av不卡| 亚洲精品久久久久久婷婷小说| 老女人水多毛片| 精品少妇久久久久久888优播| 国产成人精品无人区| 自线自在国产av| 国产精品一区二区在线不卡| 国产熟女欧美一区二区| 亚洲精品中文字幕在线视频| 免费久久久久久久精品成人欧美视频 | 欧美日韩视频精品一区| 男女无遮挡免费网站观看| 亚洲成人手机| 只有这里有精品99| av在线老鸭窝| 亚洲欧美日韩卡通动漫| 日韩人妻精品一区2区三区| 久久精品国产鲁丝片午夜精品| 亚洲情色 制服丝袜| 国产成人精品无人区| 亚洲图色成人| 国产视频首页在线观看| 日本-黄色视频高清免费观看| 女的被弄到高潮叫床怎么办| www.熟女人妻精品国产 | 99热这里只有是精品在线观看| 精品久久蜜臀av无| 女性生殖器流出的白浆| 在线免费观看不下载黄p国产| 18禁裸乳无遮挡动漫免费视频| 看免费成人av毛片| 久久久久国产精品人妻一区二区| 99久久中文字幕三级久久日本| 亚洲久久久国产精品| 午夜激情av网站| 成人国产av品久久久| 成人综合一区亚洲| av国产精品久久久久影院| 美女大奶头黄色视频| 国产乱人偷精品视频| 日本av手机在线免费观看| 一级,二级,三级黄色视频| 亚洲国产毛片av蜜桃av| 在线观看免费高清a一片| 大香蕉久久成人网| 久久精品熟女亚洲av麻豆精品| 99九九在线精品视频| av播播在线观看一区| 日韩一区二区视频免费看| 亚洲精品国产av成人精品| 国产极品粉嫩免费观看在线| 尾随美女入室| 国产精品99久久99久久久不卡 |