摘要:用本屌的話來說,沒有妹子也活不下去了。所以,本屌親自著手畫了一幅宇宙僅有的一張圖我相信聰明的人一下就能看懂了,畢竟本屌的畫拿出去賣也能值個(gè)毛錢。這樣整個(gè)應(yīng)用就開啟啦本屌那幅神圖中的大箭頭也可以順暢的捅進(jìn)去了。。
前言
經(jīng)過之前的文章《淺談Nodejs應(yīng)用的主文件index.js的組成部分》,終于認(rèn)識(shí)了Node妹子的容顏,然后好像上呀<( ̄︶ ̄)>。呦西~這次讓本屌在她胴體上游走一番,想想也是不錯(cuò)滴。嗯哼,YY到此為止。
正文這篇文章主要以組成部分為單位了解一下index.js這個(gè)主文件...皮膚有多滑( ̄▽ ̄)~
既然之前說過了index.js的組成部分,那么這次就一個(gè)組一個(gè)組的說。沒錯(cuò)!本帥的手,怎么能放過你的每一寸肌膚!
嗯..就像這樣:
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");
其實(shí)啊,依賴模塊就是字面的意思。
用前端工程師的話來說,就是$("#id").attr("class","active")這句代碼沒有Jquery就轉(zhuǎn)不起來。
用動(dòng)物的話來說,沒有食物就活不下去了。
用本屌的話來說,沒有妹子也活不下去了。
嗯哼~綜上所述,依賴就是為接下來要做的事做好能完成該事的準(zhǔn)備。所以上面那些“拼音”都是扮演這種角色的..
二、設(shè)置相關(guān)配置獻(xiàn)上該組相關(guān)代碼:
// 視圖引擎設(shè)置 app.set("views", path.join(__dirname, "views")); app.set("view engine", "jade");
額..就兩行代碼,胸比較小(  ̄﹏ ̄),畢竟蘿莉嘛,啊哈哈哈。
上面兩行代碼就是設(shè)置試圖目錄并設(shè)置jade為試圖引擎。設(shè)置的多少取決于你要用哪些模塊,有的模塊也有默認(rèn)設(shè)置,但為了自己編寫方便,肯定會(huì)設(shè)置成自己喜歡的樣子。
三、中間件//中間件 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")));
中間件,嚴(yán)格來說index.js中每一行都是中間件,我估計(jì)好多兄弟雖然知道中間件這個(gè)詞,但還是不了解到底是什么意思,它主要是干嘛的。
所以,本屌親自著手畫了一幅宇宙僅有的一張圖:
我相信聰明的人一下就能看懂了,畢竟本屌的畫拿出去賣也能值個(gè)5毛錢。
正經(jīng)話:左邊大箭頭是指代碼執(zhí)行順序,誰都知道Js是從上往下執(zhí)行的,這里為了好解釋中間件,把大箭頭看成水流。
而在水流往下流的過程中,有個(gè)類似濾網(wǎng)的東西在中間卡了一層,本屌突然想到了處女膜是不是也這樣(啊呸,思想又不正了 ̄▽ ̄)。
黑色的濾網(wǎng),就是上面那段代碼,中間件的作用就是在執(zhí)行主線代碼過程前、過程中、過程后的警察、門衛(wèi)或者引導(dǎo)者。舉個(gè)栗子,比如使用bodyParser中間件,它的作用就是解析HTTP請(qǐng)求的body數(shù)據(jù)解析,方便在路由中使用,cookie-parser也是一樣的道理。
在圖中兩個(gè)濾網(wǎng)中間部分,一般為路由,由它來負(fù)責(zé)返回客戶端想要的頁面。
這時(shí)候,眼尖的就問了,下面那個(gè)中間件為什么是紅色的?而且為什么要放在路由后面執(zhí)行?
問的好!我正要說呢。 熟悉Node開發(fā)的小伙伴都知道,大部分中間件一般寫在路由之前,但是有時(shí)候避免不了一些不確定的錯(cuò)誤,比如用戶訪問的頁面不存在怎么辦?開發(fā)版本錯(cuò)誤或者正式版本錯(cuò)誤了怎么辦? 這個(gè)時(shí)候就輪到“紅色”中間件出場(chǎng)了,沒錯(cuò),它主要負(fù)責(zé)善后的,一般用來處理可能發(fā)生的錯(cuò)誤。
四、路由//路由 app.use("/", routes); app.use("/users", users);
路由可是個(gè)好人啊,客戶端只需發(fā)送請(qǐng)求,路由就會(huì)根據(jù)請(qǐng)求url盡力的去幫你解決請(qǐng)求,它可以用不同的方式(get、post、put、del...)去處理數(shù)據(jù)或者返回你想要的頁面。總之是個(gè)有問盡力回的好銀~ 其實(shí)路由也是中間件,只是它應(yīng)該作為一個(gè)獨(dú)立的組成部分更好。
五、開啟服務(wù)//啟動(dòng)服務(wù) http.createServer(app).listen(app.get("port"), function () { console.log("服務(wù)啟動(dòng)成功,端口為:"+app.get("port")); });
啊哈哈哈哈,終于到高潮了,Node妹子快不行了<( ̄︶ ̄)>
額。。。好像也沒什么好說的,就是開啟服務(wù)了。。。。。。好吧,開啟服務(wù)前,要通過http.createServer()創(chuàng)建一個(gè)服務(wù),然后調(diào)用listen()方法即可開啟。這樣整個(gè)應(yīng)用就開啟啦~~~ 本屌那幅神圖中的大箭頭也可以順暢的捅進(jìn)去了。。進(jìn)去了。。去了。。了。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/80109.html
摘要:搭建一個(gè)應(yīng)用,少不了一個(gè)主文件,不少人根據(jù)各自喜好來定義名字,像??偨Y(jié)一個(gè)完整的由個(gè)部分組成,大家只要把主文件當(dāng)成白雪公主,把個(gè)組成部分當(dāng)作七個(gè)小矮人就行了,哈哈,這個(gè)記法真天才。 前言 Node妹子的問世,著實(shí)讓我們前端攻城獅興奮了一把,尤其本屌聽說Javascript可以寫服務(wù)端后,興奮的像是看到了二次元蘿莉的胖子...(●?●)。呃哼...YY先到這里,原諒本屌是個(gè)二次元蘿莉控。...
摘要:前后端的界限是按照瀏覽器和服務(wù)器的劃分。前后端彼此互不關(guān)聯(lián)。關(guān)于作者本文部分圖片段落參考文章實(shí)踐中的前后端分離。淘寶前后端分離實(shí)踐本文源碼詳見服務(wù)端代碼。 一、起源 (故事純屬虛構(gòu),如有雷同,純屬巧合)傳說在很久很久以前,我們有志之士有了個(gè)創(chuàng)業(yè)的想法,于是乎開始了自己的創(chuàng)業(yè)之夢(mèng),但是人手不足啊,于是乎所有角色老子一個(gè)人全包了: Roles: PM, DBA, RD, FED, Des...
摘要:前后端的界限是按照瀏覽器和服務(wù)器的劃分。前后端彼此互不關(guān)聯(lián)。關(guān)于作者本文部分圖片段落參考文章實(shí)踐中的前后端分離。淘寶前后端分離實(shí)踐本文源碼詳見服務(wù)端代碼。 一、起源 (故事純屬虛構(gòu),如有雷同,純屬巧合)傳說在很久很久以前,我們有志之士有了個(gè)創(chuàng)業(yè)的想法,于是乎開始了自己的創(chuàng)業(yè)之夢(mèng),但是人手不足啊,于是乎所有角色老子一個(gè)人全包了: Roles: PM, DBA, RD, FED, Des...
閱讀 1186·2023-04-25 17:05
閱讀 3011·2021-11-19 09:40
閱讀 3545·2021-11-18 10:02
閱讀 1740·2021-09-23 11:45
閱讀 3023·2021-08-20 09:36
閱讀 2783·2021-08-13 15:07
閱讀 1133·2019-08-30 15:55
閱讀 2459·2019-08-30 14:11