柚子快報(bào)邀請(qǐng)碼778899分享:Node.js常用知識(shí)點(diǎn)總結(jié)
柚子快報(bào)邀請(qǐng)碼778899分享:Node.js常用知識(shí)點(diǎn)總結(jié)
1.什么是node.js
js之所以可以在瀏覽器中使用,是因?yàn)椴煌瑸g覽器自帶著不同的javascript解析引擎,可以對(duì)js代碼進(jìn)行解析并執(zhí)行
瀏覽器中的 JavaScript 運(yùn)行環(huán)境(運(yùn)行環(huán)境指的是代碼正常運(yùn)行所需的必要環(huán)境) 以谷歌瀏覽器為例,js的運(yùn)行環(huán)境就是由v8解析引擎和一些內(nèi)置的web API所組成;
總結(jié): V8 引擎負(fù)責(zé)解析和執(zhí)行 JavaScript 代碼。 內(nèi)置 API 是由運(yùn)行環(huán)境提供的特殊接口,只能在所屬的運(yùn)行環(huán)境中被調(diào)用。
Node.js是一個(gè)屬于后端的運(yùn)行環(huán)境,通過(guò)node可以使js進(jìn)行后端的開發(fā)
Node.js 是一個(gè)基于 Chrome V8 引擎的 JavaScript 運(yùn)行環(huán)境。屬于后端的一個(gè)運(yùn)行環(huán)境
終端的一些快捷指令
2.fs文件系統(tǒng)模塊
導(dǎo)入模塊有兩種方法,import和require都可以
_ _dirname表示當(dāng)前文件所處的目錄(打開終端的默認(rèn)路徑名),可以有效的防止路徑動(dòng)態(tài)拼接的問(wèn)題
3.path 路徑模塊
只有…/才有抵消路徑的功能,會(huì)抵消前面的路徑,./是沒(méi)有的也不會(huì)
路徑的最后的一部分一般返回的是文件名
http模塊
服務(wù)器和普通電腦的區(qū)別在于,服務(wù)器上安裝了 web 服務(wù)器軟件,例如:IIS、Apache 等。通過(guò)安裝這些服務(wù)器軟件,就能把一臺(tái)普通的電腦變成一臺(tái) web 服務(wù)器。在 Node.js 中,我們不需要使用 IIS、Apache 等這些第三方 web 服務(wù)器軟件。因?yàn)槲覀兛梢曰?Node.js 提供的http 模塊,通過(guò)幾行簡(jiǎn)單的代碼,就能輕松的手寫一個(gè)服務(wù)器軟件,從而對(duì)外提供 web服務(wù)。
node.js是相當(dāng)于用前端的語(yǔ)法寫后端,因?yàn)閖s的語(yǔ)法跟java的類似 如果端口號(hào)是80,則可以省略不寫(注意:是80端口號(hào),不是8080)
req請(qǐng)求對(duì)象中儲(chǔ)存的是與客戶端有關(guān)的數(shù)據(jù)和屬性
res響應(yīng)對(duì)象中儲(chǔ)存的是與服務(wù)器相關(guān)的屬性和方法,可以向客戶端響應(yīng)指定內(nèi)容
注意:setHeader()函數(shù)必須要在end()之前調(diào)用
服務(wù)器充當(dāng)?shù)慕巧褪且粋€(gè)字符串的搬運(yùn)工
模塊化
模塊化是指解決一個(gè)復(fù)雜問(wèn)題時(shí),自頂向下逐層把系統(tǒng)劃分成若干模塊的過(guò)程。對(duì)于整個(gè)系統(tǒng)來(lái)說(shuō),模塊是可組合、分解和更換的單元。 類似于小時(shí)候玩的插卡游戲機(jī),不同游戲的卡片就是模塊,游戲主機(jī)就是系統(tǒng)
注意:在使用require加載用戶自定義模塊的時(shí)候,可以省略.js的后綴名; 使用 require() 方法加載其它模塊時(shí),會(huì)執(zhí)行被加載模塊中的代碼。
好處:防止全局變量的污染
在每個(gè) .js 自定義模塊中都有一個(gè) module 對(duì)象,它里面存儲(chǔ)了和當(dāng)前模塊有關(guān)的信息 導(dǎo)入一個(gè)自定義模塊的時(shí)候,默認(rèn)得到的是一個(gè)空對(duì)象,因?yàn)槟K具有作用域 導(dǎo)入自定義事件的時(shí)候?qū)嶋H上讀取的是module.export對(duì)象,當(dāng)我們?cè)趧?chuàng)建自定義模塊的時(shí)候?qū)⑿枰┞冻鋈サ膶傩院头椒ǘ紥燧d到module.export對(duì)象上
npm與包
包是基于內(nèi)置模塊封裝出來(lái)的,提供了更高級(jí)、更方便的 API,極大的提高了開發(fā)效率。 包和內(nèi)置模塊之間的關(guān)系,類似于 jQuery 和 瀏覽器內(nèi)置 API 之間的關(guān)系。
內(nèi)置模塊是由 Node.js 官方提供的模塊,內(nèi)置模塊的加載優(yōu)先級(jí)最高
Express
導(dǎo)入之前需要進(jìn)行依賴安裝
express.static()還可以對(duì)外開放訪問(wèn)我們指定目錄下的html文件
nodemon會(huì)監(jiān)聽我們的代碼,當(dāng)有修改時(shí),自動(dòng)重啟項(xiàng)目
app.use()函數(shù)的作用是用來(lái)注冊(cè)全局中間件的 中間件(Middleware ),特指業(yè)務(wù)流程的中間處理環(huán)節(jié)。
中間件
除了錯(cuò)誤級(jí)別的中間件,其他的中間件必須在路由之前配置
CORS 主要在服務(wù)器端進(jìn)行配置。客戶端瀏覽器無(wú)須做任何額外的配置,即可請(qǐng)求開啟了 CORS 的接口。
通過(guò)cors實(shí)現(xiàn)跨域資源共享必須要配置一系列響應(yīng)頭,跟cors相關(guān)的響應(yīng)頭都是以Access-Control-Allow開頭的
數(shù)據(jù)庫(kù)
傳統(tǒng)型數(shù)據(jù)庫(kù)的數(shù)據(jù)組織結(jié)構(gòu),與 Excel 中數(shù)據(jù)的組織結(jié)構(gòu)比較類似。
柚子快報(bào)邀請(qǐng)碼778899分享:Node.js常用知識(shí)點(diǎn)總結(jié)
參考文章
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。