淺談Nodejs應(yīng)用主文件index.js
前言
經(jīng)過(guò)之前的文章 《淺談Nodejs應(yīng)用的主文件index.js的組成部分》 ,終于認(rèn)識(shí)了 Node 妹子的容顏,然后好像上呀<( ̄︶ ̄)>。呦西~這次讓本屌在她胴體上游走一番,想想也是不錯(cuò)滴。嗯哼,YY到此為止。
正文
這篇文章主要以組成部分為單位了解一下 index.js 這個(gè)主文件...皮膚有多滑( ̄▽?zhuān)﹡
既然之前說(shuō)過(guò)了index.js的組成部分,那么這次就一個(gè)組一個(gè)組的說(shuō)。沒(méi)錯(cuò)!本帥的手,怎么能放過(guò)你的每一寸肌膚!
一、引入依賴(lài)模塊
嗯..就像這樣:
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í)啊,依賴(lài)模塊就是字面的意思。
用前端工程師的話(huà)來(lái)說(shuō),就是$("#id").attr("class","active")這句代碼沒(méi)有Jquery就轉(zhuǎn)不起來(lái)。
用動(dòng)物的話(huà)來(lái)說(shuō),沒(méi)有食物就活不下去了。
用本屌的話(huà)來(lái)說(shuō),沒(méi)有妹子也活不下去了。
嗯哼~綜上所述,依賴(lài)就是 為接下來(lái)要做的事做好能完成該事的準(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è)置,但為了自己編寫(xiě)方便,肯定會(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)格來(lái)說(shuō)index.js中每一行都是中間件,我估計(jì)好多兄弟雖然知道中間件這個(gè)詞,但還是不了解到底是什么意思,它主要是干嘛的。
所以,本屌親自著手畫(huà)了一幅宇宙僅有的一張圖:
我相信聰明的人一下就能看懂了,畢竟本屌的畫(huà)拿出去賣(mài)也能值個(gè)5毛錢(qián)。
正經(jīng)話(huà):左邊大箭頭是指代碼執(zhí)行順序,誰(shuí)都知道 Js 是從上往下執(zhí)行的,這里為了好解釋中間件,把大箭頭看成水流。
而在水流往下流的過(guò)程中,有個(gè)類(lèi)似濾網(wǎng)的東西在中間卡了一層,本屌突然想到了處女膜是不是也這樣(啊呸,思想又不正了 ̄▽?zhuān)?/p>
黑色的濾網(wǎng),就是上面那段代碼,中間件的作用就是在執(zhí)行主線(xiàn)代碼過(guò)程前、過(guò)程中、過(guò)程后的警察、門(mén)衛(wèi)或者引導(dǎo)者。舉個(gè)栗子,比如使用 bodyParser 中間件,它的作用就是解析 HTTP 請(qǐng)求的 body 數(shù)據(jù)解析,方便在路由中使用, cookie-parser 也是一樣的道理。
在圖中兩個(gè)濾網(wǎng)中間部分,一般為路由,由它來(lái)負(fù)責(zé)返回客戶(hù)端想要的頁(yè)面。
這時(shí)候,眼尖的就問(wèn)了,下面那個(gè)中間件為什么是紅色的?而且為什么要放在路由后面執(zhí)行?
問(wèn)的好!我正要說(shuō)呢。 熟悉Node開(kāi)發(fā)的小伙伴都知道,大部分中間件一般寫(xiě)在路由之前,但是有時(shí)候避免不了一些不確定的錯(cuò)誤,比如用戶(hù)訪問(wèn)的頁(yè)面不存在怎么辦?開(kāi)發(fā)版本錯(cuò)誤或者正式版本錯(cuò)誤了怎么辦? 這個(gè)時(shí)候就輪到“紅色”中間件出場(chǎng)了,沒(méi)錯(cuò),它主要負(fù)責(zé)善后的,一般用來(lái)處理可能發(fā)生的錯(cuò)誤。
四、路由
//路由 app.use('/', routes); app.use('/users', users);
路由可是個(gè)好人啊,客戶(hù)端只需發(fā)送請(qǐng)求,路由就會(huì)根據(jù)請(qǐng)求 url 盡力的去幫你解決請(qǐng)求,它可以用不同的方式( get 、 post 、 put 、 del ...)去處理數(shù)據(jù)或者返回你想要的頁(yè)面??傊莻€(gè)有問(wèn)盡力回的好銀~ 其實(shí)路由也是中間件,只是它應(yīng)該作為一個(gè)獨(dú)立的組成部分更好。
五、開(kāi)啟服務(wù)
//啟動(dòng)服務(wù) http.createServer(app).listen(app.get('port'), function () { console.log('服務(wù)啟動(dòng)成功,端口為:'+app.get('port')); });
啊哈哈哈哈,終于到高潮了,Node妹子快不行了<( ̄︶ ̄)>
額。。。好像也沒(méi)什么好說(shuō)的,就是開(kāi)啟服務(wù)了。。。。。。好吧,開(kāi)啟服務(wù)前,要通過(guò) http.createServer() 創(chuàng)建一個(gè)服務(wù),然后調(diào)用 listen() 方法即可開(kāi)啟。這樣整個(gè)應(yīng)用就開(kāi)啟啦~~~ 本屌那幅神圖中的大箭頭也可以順暢的捅進(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中讀取中文文件編碼問(wèn)題、發(fā)送郵件和定時(shí)任務(wù)實(shí)例
- nodejs批量修改文件編碼格式
- Nodejs如何復(fù)制文件
- NodeJS Web應(yīng)用監(jiān)聽(tīng)sock文件實(shí)例
- 實(shí)例詳解Nodejs 保存 payload 發(fā)送過(guò)來(lái)的文件
- 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)文章
Vue+Node實(shí)現(xiàn)的商城用戶(hù)管理功能示例
這篇文章主要介紹了Vue+Node實(shí)現(xiàn)的商城用戶(hù)管理功能,結(jié)合實(shí)例形式詳細(xì)分析了商城用戶(hù)管理的前臺(tái)登錄、校驗(yàn)、跳轉(zhuǎn)、退出等相關(guān)操作技巧,需要的朋友可以參考下2019-12-12Express實(shí)現(xiàn)Session身份認(rèn)證的示例代碼
本文主要介紹了Express實(shí)現(xiàn)Session身份認(rèn)證的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01Windows系統(tǒng)下Node.js的簡(jiǎn)單入門(mén)教程
這篇文章主要介紹了Windows系統(tǒng)下Node.js的簡(jiǎn)單入門(mén)教程,Node.js是用于后端編程的JavaScript框架,需要的朋友可以參考下2015-06-06詳解nodejs微信公眾號(hào)開(kāi)發(fā)——1.接入微信公眾號(hào)
本篇文章主要介紹了詳解nodejs微信公眾號(hào)開(kāi)發(fā)——1.接入微信公眾號(hào),非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-04-04使用PM2實(shí)現(xiàn)高效的應(yīng)用監(jiān)控與管理功能
PM2?是一個(gè)流行的進(jìn)程管理器,用于?Node.js?應(yīng)用程序,它支持應(yīng)用程序的負(fù)載均衡、自動(dòng)重啟、日志管理、監(jiān)控以及多環(huán)境管理等功能,本文給大家介紹了如何使用PM2實(shí)現(xiàn)高效的應(yīng)用監(jiān)控與管理功能,需要的朋友可以參考下2024-02-02最流行的Node.js精簡(jiǎn)型和全棧型開(kāi)發(fā)框架介紹
這篇文章主要介紹了最流行的Node.js精簡(jiǎn)型和全棧型開(kāi)發(fā)框架介紹,本文講解了Express.js、KOA、Total.js、Sails.js、Meteor、Mean.IO等框架,需要的朋友可以參考下2015-02-02總結(jié)Node.js中9種fs模塊文件操作方法(文件夾遞歸刪除知識(shí))
這篇文章主要介紹了總結(jié)Node.js中9種fs模塊文件操作方法(文件夾遞歸刪除知識(shí)),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-07-07