前言
經過之前的文章《淺談Nodejs應用的主文件index.js的組成部分》 ,終於認識了Node 妹子的容顏,然後好像上呀<( ̄ ̄)>。呦西~這次讓本在她胴體上游走一番,想想也是不錯滴。嗯哼,YY到此為止。
正文
這篇文章主要以組成部分為單位了解一下index.js 這個主文件...皮膚有多滑( ̄ ̄)~
既然之前說過了index.js的組成部分,那麼這次就一個組一個組的說。沒錯!本帥的手,怎麼能放過你的每一寸肌膚!
一、引入依賴模塊
嗯..就像這樣:
var express = require('express');var path = require('path');var favicon = require('serve-favicon');var logger = require('morgan');var cookieParser = require('cookie-parser');var bodyParser = require('body-parser');其實啊,依賴模塊就是字面的意思。
用前端工程師的話來說,就是$("#id").attr("class","active")這句代碼沒有Jquery就轉不起來。
用動物的話來說,沒有食物就活不下去了。
用本的話來說,沒有妹子也活不下去了。
嗯哼~綜上所述,依賴就是為接下來要做的事做好能完成該事的準備。所以上面那些“拼音”都是扮演這種角色的..
二、設置相關配置
獻上該組相關代碼:
// 視圖引擎設置app.set('views', path.join(__dirname, 'views'));app.set('view engine', 'jade');額..就兩行代碼,胸比較小(  ̄ ̄),畢竟蘿莉嘛,啊哈哈哈。
上面兩行代碼就是設置試圖目錄並設置jade 為試圖引擎。設置的多少取決於你要用哪些模塊,有的模塊也有默認設置,但為了自己編寫方便,肯定會設置成自己喜歡的樣子。
三、中間件
//中間件app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));app.use(logger('dev'));app.use(bodyParser.json());app.use(bodyParser.urlencoded({ extended: false }));app.use(cookieParser());app.use(express.static(path.join(__dirname, 'public')));中間件,嚴格來說index.js中每一行都是中間件,我估計好多兄弟雖然知道中間件這個詞,但還是不了解到底是什麼意思,它主要是乾嘛的。
所以,本親自著手畫了一幅宇宙僅有的一張圖:
我相信聰明的人一下就能看懂了,畢竟本的畫拿出去賣也能值個5毛錢。
正經話:左邊大箭頭是指代碼執行順序,誰都知道Js 是從上往下執行的,這里為了好解釋中間件,把大箭頭看成水流。
而在水流往下流的過程中,有個類似濾網的東西在中間卡了一層,本突然想到了處女膜是不是也這樣(啊呸,思想又不正了 ̄ ̄)。
黑色的濾網,就是上面那段代碼,中間件的作用就是在執行主線代碼過程前、過程中、過程後的警察、門衛或者引導者。舉個栗子,比如使用bodyParser 中間件,它的作用就是解析HTTP 請求的body 數據解析,方便在路由中使用, cookie-parser 也是一樣的道理。
在圖中兩個濾網中間部分,一般為路由,由它來負責返回客戶端想要的頁面。
這時候,眼尖的就問了,下面那個中間件為什麼是紅色的?而且為什麼要放在路由後面執行?
問的好!我正要說呢。 熟悉Node開發的小伙伴都知道,大部分中間件一般寫在路由之前,但是有時候避免不了一些不確定的錯誤,比如用戶訪問的頁面不存在怎麼辦?開發版本錯誤或者正式版本錯誤了怎麼辦? 這個時候就輪到“紅色”中間件出場了,沒錯,它主要負責善後的,一般用來處理可能發生的錯誤。
四、路由
//路由app.use('/', routes);app.use('/users', users);路由可是個好人啊,客戶端只需發送請求,路由就會根據請求url 盡力的去幫你解決請求,它可以用不同的方式( get 、 post 、 put 、 del ...)去處理數據或者返回你想要的頁面。總之是個有問盡力回的好銀~ 其實路由也是中間件,只是它應該作為一個獨立的組成部分更好。
五、開啟服務
//啟動服務http.createServer(app).listen(app.get('port'), function () { console.log('服務啟動成功,端口為:'+app.get('port'));});啊哈哈哈哈,終於到高潮了,Node妹子快不行了<( ̄ ̄)>
額。 。 。好像也沒什麼好說的,就是開啟服務了。 。 。 。 。 。好吧,開啟服務前,要通過http.createServer() 創建一個服務,然後調用listen() 方法即可開啟。這樣整個應用就開啟啦~~~ 本那幅神圖中的大箭頭也可以順暢的捅進去了。 。進去了。 。去了。 。了。