摘要:用本屌的話來說,沒有妹子也活不下去了。所以,本屌親自著手畫了一幅宇宙僅有的一張圖我相信聰明的人一下就能看懂了,畢竟本屌的畫拿出去賣也能值個毛錢。這樣整個應用就開啟啦本屌那幅神圖中的大箭頭也可以順暢的捅進去了。。
前言
經過之前的文章《淺談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()方法即可開啟。這樣整個應用就開啟啦~~~ 本屌那幅神圖中的大箭頭也可以順暢的捅進去了。。進去了。。去了。。了。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/80109.html
摘要:搭建一個應用,少不了一個主文件,不少人根據各自喜好來定義名字,像??偨Y一個完整的由個部分組成,大家只要把主文件當成白雪公主,把個組成部分當作七個小矮人就行了,哈哈,這個記法真天才。 前言 Node妹子的問世,著實讓我們前端攻城獅興奮了一把,尤其本屌聽說Javascript可以寫服務端后,興奮的像是看到了二次元蘿莉的胖子...(●?●)。呃哼...YY先到這里,原諒本屌是個二次元蘿莉控。...
摘要:前后端的界限是按照瀏覽器和服務器的劃分。前后端彼此互不關聯。關于作者本文部分圖片段落參考文章實踐中的前后端分離。淘寶前后端分離實踐本文源碼詳見服務端代碼。 一、起源 (故事純屬虛構,如有雷同,純屬巧合)傳說在很久很久以前,我們有志之士有了個創業的想法,于是乎開始了自己的創業之夢,但是人手不足啊,于是乎所有角色老子一個人全包了: Roles: PM, DBA, RD, FED, Des...
摘要:前后端的界限是按照瀏覽器和服務器的劃分。前后端彼此互不關聯。關于作者本文部分圖片段落參考文章實踐中的前后端分離。淘寶前后端分離實踐本文源碼詳見服務端代碼。 一、起源 (故事純屬虛構,如有雷同,純屬巧合)傳說在很久很久以前,我們有志之士有了個創業的想法,于是乎開始了自己的創業之夢,但是人手不足啊,于是乎所有角色老子一個人全包了: Roles: PM, DBA, RD, FED, Des...
閱讀 1197·2023-04-25 17:05
閱讀 3019·2021-11-19 09:40
閱讀 3573·2021-11-18 10:02
閱讀 1750·2021-09-23 11:45
閱讀 3031·2021-08-20 09:36
閱讀 2789·2021-08-13 15:07
閱讀 1141·2019-08-30 15:55
閱讀 2472·2019-08-30 14:11