摘要:模塊系統(tǒng)為了讓的文件相互調(diào)用,提供了一個(gè)簡(jiǎn)單的模塊系統(tǒng)應(yīng)用程序的組成就是由模塊組成基本部分,文件和模塊是一一對(duì)應(yīng)的。緩存區(qū)域分為兩種,一種是文件模塊緩存區(qū),也就是我們說(shuō)的三種文件類(lèi)型,還有一種就是原生模塊緩存區(qū),例如等原生模塊。
Node.js模塊系統(tǒng)
為了讓Node.js的文件相互調(diào)用,Node.js提供了一個(gè)簡(jiǎn)單的模塊系統(tǒng)
Node.js應(yīng)用程序的組成就是由模塊組成基本部分,文件和模塊是一一對(duì)應(yīng)的。
一個(gè)Node.js文件就是一個(gè)模塊,這個(gè)文件可以是js代碼,JSON 或者編譯過(guò)的C/C++擴(kuò)展。
接下來(lái)寫(xiě)一個(gè)實(shí)例。
創(chuàng)建模塊與引入模塊很簡(jiǎn)單,首先我們寫(xiě)一個(gè)hello.js文件 代碼如下
// 模塊的主要邏輯 function Hello() { let name this.setName = function(argName) { name = argName } this.sayHello = function() { console.log("Hello" + name) } } module.exports = Hello //導(dǎo)出模塊
exports 和 module.exports 的使用
如果要對(duì)外暴露屬性或方法,就用 exports 就行,要暴露對(duì)象(類(lèi)似class,包含了很多屬性和方法),就用 module.exports。
然后寫(xiě)一個(gè)倒入模塊的文件 main.js
const Hello = require("./hello") // 這里使用require導(dǎo)入剛剛寫(xiě)好的hello.js let hello = new Hello() hello.setName("思否") hello.sayHello()
服務(wù)端的模塊的加載流程
node.js中有原生模塊和三種文件模塊 ,在使用中只需要require,用起來(lái)很簡(jiǎn)單,但是內(nèi)部的加載很復(fù)雜,其加載優(yōu)先級(jí)也各有不同,入下圖所示
按圖中所示,不管是哪種模塊,加載機(jī)制都會(huì)優(yōu)先檢查文件是否在模塊緩存區(qū)中,緩存區(qū)的意義在于防止某一個(gè)模塊被反復(fù)加載。
緩存區(qū)域分為兩種,一種是文件模塊緩存區(qū),也就是我們說(shuō)的三種文件類(lèi)型,還有一種就是原生模塊緩存區(qū),例如http fs等原生模塊。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/104386.html
摘要:模塊系統(tǒng)為了讓的文件可以相互調(diào)用,提供了一個(gè)簡(jiǎn)單的模塊系統(tǒng)。但是,沒(méi)有模塊系統(tǒng)。包管理簡(jiǎn)稱(chēng),是隨同一起安裝的包管理工具。輸入命令,根據(jù)提示配置包的相關(guān)信息,生成相應(yīng)的。以上所描述的模塊載入機(jī)制均定義在模塊之中。 Node.js簡(jiǎn)介 首先從名字說(shuō)起,網(wǎng)上查閱資料的時(shí)候會(huì)發(fā)現(xiàn)關(guān)于node的寫(xiě)法五花八門(mén),到底哪一種寫(xiě)法最標(biāo)準(zhǔn)呢?遵循官方網(wǎng)站的說(shuō)法,一直將項(xiàng)目稱(chēng)之為Node或者Node.js。...
摘要:深入淺出一直想致力于寫(xiě)一篇關(guān)于廣義講解系統(tǒng)的文章,苦于時(shí)間有限,資源有限。事件驅(qū)動(dòng)機(jī)制是通過(guò)內(nèi)部單線程高效率地維護(hù)事件循環(huán)隊(duì)列來(lái)實(shí)現(xiàn)的,沒(méi)有多線程的資源占用和上下文的切換。 深入淺出Node.js 一直想致力于寫(xiě)一篇關(guān)于廣義講解Node.js系統(tǒng)的文章,苦于時(shí)間有限,資源有限。這篇文章是在結(jié)合自己的學(xué)習(xí)心得以及與行業(yè)大佬共同探討下?tīng)?zhēng)對(duì)于熟練掌握J(rèn)S語(yǔ)言后的廣義Node.js.至于為什么...
摘要:深入淺出一直想致力于寫(xiě)一篇關(guān)于廣義講解系統(tǒng)的文章,苦于時(shí)間有限,資源有限。事件驅(qū)動(dòng)機(jī)制是通過(guò)內(nèi)部單線程高效率地維護(hù)事件循環(huán)隊(duì)列來(lái)實(shí)現(xiàn)的,沒(méi)有多線程的資源占用和上下文的切換。 深入淺出Node.js 一直想致力于寫(xiě)一篇關(guān)于廣義講解Node.js系統(tǒng)的文章,苦于時(shí)間有限,資源有限。這篇文章是在結(jié)合自己的學(xué)習(xí)心得以及與行業(yè)大佬共同探討下?tīng)?zhēng)對(duì)于熟練掌握J(rèn)S語(yǔ)言后的廣義Node.js.至于為什么...
摘要:深入淺出一直想致力于寫(xiě)一篇關(guān)于廣義講解系統(tǒng)的文章,苦于時(shí)間有限,資源有限。事件驅(qū)動(dòng)機(jī)制是通過(guò)內(nèi)部單線程高效率地維護(hù)事件循環(huán)隊(duì)列來(lái)實(shí)現(xiàn)的,沒(méi)有多線程的資源占用和上下文的切換。 深入淺出Node.js 一直想致力于寫(xiě)一篇關(guān)于廣義講解Node.js系統(tǒng)的文章,苦于時(shí)間有限,資源有限。這篇文章是在結(jié)合自己的學(xué)習(xí)心得以及與行業(yè)大佬共同探討下?tīng)?zhēng)對(duì)于熟練掌握J(rèn)S語(yǔ)言后的廣義Node.js.至于為什么...
閱讀 3514·2023-04-25 20:09
閱讀 3720·2022-06-28 19:00
閱讀 3035·2022-06-28 19:00
閱讀 3058·2022-06-28 19:00
閱讀 3132·2022-06-28 19:00
閱讀 2859·2022-06-28 19:00
閱讀 3014·2022-06-28 19:00
閱讀 2610·2022-06-28 19:00