淺談Nodejs應(yīng)用主文件index.js
前言
經(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)去了。。去了。。了。
- nodejs實(shí)現(xiàn)遍歷文件夾并統(tǒng)計(jì)文件大小
- nodejs文件操作模塊FS(File System)常用函數(shù)簡(jiǎn)明總結(jié)
- NodeJS學(xué)習(xí)筆記之FS文件模塊
- nodejs 實(shí)現(xiàn)模擬form表單上傳文件
- Nodejs中讀取中文文件編碼問題、發(fā)送郵件和定時(shí)任務(wù)實(shí)例
- nodejs批量修改文件編碼格式
- Nodejs如何復(fù)制文件
- NodeJS Web應(yīng)用監(jiān)聽sock文件實(shí)例
- 實(shí)例詳解Nodejs 保存 payload 發(fā)送過來的文件
- NodeJs讀取JSON文件格式化時(shí)的注意事項(xiàng)
- NodeJS與HTML5相結(jié)合實(shí)現(xiàn)拖拽多個(gè)文件上傳到服務(wù)器的實(shí)現(xiàn)方法
- NodeJS使用formidable實(shí)現(xiàn)文件上傳
- NodeJS遍歷文件生產(chǎn)文件列表功能示例
相關(guān)文章
nodejs body-parser 解析post數(shù)據(jù)實(shí)例
下面小編就為大家?guī)硪黄猲odejs body-parser 解析post數(shù)據(jù)實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07
WebSocket+node.js創(chuàng)建即時(shí)通信的Web聊天服務(wù)器
這篇文章主要為大家詳細(xì)介紹了WebSocket+node.js創(chuàng)建即時(shí)通信的Web聊天服務(wù)器的相關(guān)資料,感興趣的小伙伴們可以參考一下2016-08-08
Node.JS段點(diǎn)續(xù)傳:Nginx配置文件分段下載功能的實(shí)現(xiàn)方法
在Node.JS中可以配置這個(gè)標(biāo)簽來實(shí)現(xiàn)文件的分段下載。這篇文章給大家介紹了Node.JS段點(diǎn)續(xù)傳:Nginx配置文件分段下載功能的實(shí)現(xiàn)方法,需要的朋友參考下吧2018-03-03
Node.js事件循環(huán)(Event Loop)的使用
事件循環(huán)是其非阻塞I/O和高并發(fā)能力的核心機(jī)制,本文主要介紹了Node.js事件循環(huán)(Event Loop)的使用,具有一定的參考價(jià)值,感興趣的可以了解一下2024-05-05
node+axios實(shí)現(xiàn)下載外網(wǎng)文件到本地
這篇文章主要為大家介紹了node+axios實(shí)現(xiàn)下載外網(wǎng)文件到本地示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06

