公務(wù)員期刊網(wǎng) 論文中心 正文

    Node.js的旅游網(wǎng)站設(shè)計(jì)淺析

    前言:想要寫出一篇引人入勝的文章?我們特意為您整理了Node.js的旅游網(wǎng)站設(shè)計(jì)淺析范文,希望能給你帶來靈感和參考,敬請閱讀。

    Node.js的旅游網(wǎng)站設(shè)計(jì)淺析

    摘要:本文主要結(jié)合node.js技術(shù)對旅游網(wǎng)站的登錄設(shè)計(jì)功能進(jìn)行了介紹。運(yùn)用Node.js技術(shù),采用Express框架對功能進(jìn)行構(gòu)建,運(yùn)用Node.js的模板,實(shí)現(xiàn)對網(wǎng)站的開發(fā)。

    關(guān)鍵詞:Node.js;Express框架;網(wǎng)站設(shè)計(jì)

    1引言

    隨著網(wǎng)站開發(fā)技術(shù)的不斷發(fā)展,尤其是JavaScript應(yīng)用的日趨廣泛,Node.js這一運(yùn)行環(huán)境也開始出現(xiàn)在更多人的視野。如何利用Node.js基于事件的并具有異步非阻塞I/O處理的顯著優(yōu)點(diǎn)進(jìn)行網(wǎng)站的設(shè)計(jì),是一個(gè)值得關(guān)注的問題。

    2Node.js特點(diǎn)分析

    2.1基于事件的機(jī)制

    Node.js本身就是一個(gè)基于事件的框架,而這一特點(diǎn)也使其在眾多的后端JavaScript技術(shù)之中脫穎而出。Node.js中大部分的模塊,都繼承自Event模塊:一個(gè)簡單的事件監(jiān)聽器模式的實(shí)現(xiàn)。將常見且成熟的技術(shù)引入到后端,實(shí)現(xiàn)和異步非阻塞I/O的配合。

    2.2異步非阻塞I/O

    異步是與同步想對應(yīng)的概念,主要針對C端,區(qū)別在于數(shù)據(jù)訪問的時(shí)候進(jìn)程是否阻塞;阻塞和非阻塞是針對S端的,區(qū)別在于應(yīng)用程序的調(diào)用是否立即返回。實(shí)際上,異步和非阻塞是一個(gè)意思,表示都能夠達(dá)到并行處理的結(jié)果。異步非阻塞I/O實(shí)現(xiàn)了每個(gè)調(diào)用之間不需要等待,操作結(jié)束后,可以通過回調(diào)進(jìn)行函數(shù)處理。

    2.3單線程

    Node.js和JavaScript一樣保持了單線程的特點(diǎn)。單線程是指在程序執(zhí)行時(shí),所走路徑必須前一個(gè)執(zhí)行好后一個(gè)才能執(zhí)行。采用單線程就可以不用考慮線程安全、死鎖問題等。

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

    旅游網(wǎng)站考慮到用戶的需求,設(shè)計(jì)的功能模塊如下:(1)經(jīng)典路線查詢:網(wǎng)站會(huì)為用戶設(shè)計(jì)旅游路線,并且根據(jù)不同時(shí)期有所調(diào)整。用戶可以根據(jù)已有路線選擇自己的出行,這在一定程度上節(jié)省了用戶的選擇時(shí)間。(2)主題游:主題游包括藝術(shù)之旅,發(fā)現(xiàn)歷史,探險(xiǎn)之旅,發(fā)現(xiàn)美食四部分,用戶可以根據(jù)自己的興趣愛好,選擇合適的出行路線。(3)近期活動(dòng):近期活動(dòng)包括一元抽獎(jiǎng),尋找牡丹,每日推薦,路線投票等。活動(dòng)會(huì)隨著時(shí)間的推移進(jìn)行調(diào)整和更新。(4)游記展示:游記展示這部分主要包括熱門游記、最新游記以及寫游記這三部分。在網(wǎng)站注冊成功的會(huì)員都享有這一權(quán)利,不僅可以瀏覽其他人的內(nèi)容,也可以在網(wǎng)站上自己的旅游心得。

    4實(shí)現(xiàn)過程

    Express是目前最流行的基于Node.js的Web開發(fā)框架,簡介靈活,支持ejs、jade等多種模板,可以快速地搭建一個(gè)具有完整功能的網(wǎng)站。這里以登錄功能為例,介紹Node.js技術(shù)的具體實(shí)現(xiàn)過程:(1)建立工程:1)使用Express命令建立工程;2)根據(jù)提示下載依賴包;3)工程建立成功后,啟動(dòng)服務(wù)。(2)目錄結(jié)構(gòu)³Bin:存放命令行程序;³node_modules:存放所有的項(xiàng)目依賴庫;³public:存放靜態(tài)文件,包括css、js、img等;³routes:存放路由文件;³views:存放頁面文件(ejs模板);³app.js:程序啟動(dòng)文件;³package.json:項(xiàng)目依賴配置及開發(fā)者信息。(3)Express配置文件:app.js。(4)ejs模板:修改app.js,讓ejs模板文件使用擴(kuò)展名為html的文件。(5)安裝常用庫及頁面分離:添加bootstrap和jQuery;設(shè)計(jì)的首頁index.html分成三個(gè)部分:頭部、內(nèi)容、底部分別對應(yīng)不同的文件。(6)路由:1)打開app.js文件,增加路由配置;2)打開routes/index.js文件,添加對應(yīng)方法;3)創(chuàng)建views/login.html和views/home.html兩個(gè)文件;4)修改index.html,增加登錄鏈接;5)路由及頁面已準(zhǔn)備好后,重啟服務(wù)。(7)session:1)安裝中間件express-session、connect-mongodb和mongodb;2)添加database/settings.js和database/msession.js這兩個(gè)文件;3)修改app.js、index.js文件;4)本地安裝數(shù)據(jù)庫MongoDB,新建用戶nodedb。重啟服務(wù),訪問成功。(8)頁面訪問控制及提示:1)修改index.js文件;2)重啟服務(wù),訪問成功;3)添加頁面提示,修改app.js文件,增加res.locals.message;4)修改index.js文件,增加req.session.error;5)修改login.html,增加<%-message%>;6)重啟服務(wù),訪問成功。

    5結(jié)束語

    Node.js通過更改連接到服務(wù)器的方式解決了服務(wù)器能夠處理的并發(fā)連接最大數(shù)量這一瓶頸。由于它是基于事件的,不會(huì)出現(xiàn)死鎖現(xiàn)象,也不會(huì)阻塞I/O調(diào)用,因此在處理高并發(fā)場景的性能會(huì)更高。另外,Node.js在分布式應(yīng)用中也有很好的表現(xiàn),如阿里巴巴的數(shù)據(jù)平臺(tái)就是一個(gè)很好的例子。它的NodeFox和eBay的ql.io借用Node.js并行I/O的能力,更高效地使用已有的數(shù)據(jù)。所以,相信用不了多久,Node.js這一技術(shù)一定會(huì)得到更廣泛的應(yīng)用。

    參考文獻(xiàn):

    [1]許會(huì)元,何利力.NodeJS的異步非阻塞I/O研究[J].工業(yè)控制計(jì)算機(jī),2015(03):127-129.

    [2]樸靈.深入淺出Node.js[M].北京:人民郵電出版社,2013.

    作者:王惠 單位:沈陽建筑大學(xué)

    主站蜘蛛池模板: 国产成人AV一区二区三区无码 | 国产成人av在线免播放观看| 成人欧美在线视频| 在线成人综合色一区| 四虎成人免费观看在线网址| 99精品国产成人一区二区| 成人中文字幕在线| WWW四虎最新成人永久网站| 国内外成人在线视频| 88aa四虎影成人精品| 国产成人女人毛片视频在线| 91亚洲国产成人精品下载| 国产成人女人视频在线观看| 成人最新午夜免费视频| 亚洲最大成人网色香蕉| 成人免费视频小说| 中文国产成人精品少久久| 亚洲色成人网一二三区| 天天成人综合网| 成人18xxxx网站| 在线观看成人网站| 成人免费毛片观看| 日本在线观看成人小视频| 四虎影院成人在线观看| 国产成人综合色视频精品| 成人午夜精品无码区久久| 欧美成人亚洲高清在线观看| 亚洲精品成人a在线观看| 国产成人久久777777| 国产激情一区二区三区成人91| 成人国内精品久久久久一区| 成人精品一区二区电影| 亚洲国产精品成人久久久 | 免费视频成人片在线观看| 成人a级高清视频在线观看| 成人午夜性影院视频| 国产成人黄网在线免| 国产成人一区二区三区电影网站| 国产成人无码区免费内射一片色欲| 国产成人精品亚洲| 免费视频成人片在线观看|