Node.js模塊系統 (建立模塊與加載模塊)

Node.js模塊系統node

爲了讓Node.js的文件相互調用,Node.js提供了一個簡單的模塊系統緩存

Node.js應用程序的組成就是由模塊組成基本部分,文件和模塊是一一對應的。ui

一個Node.js文件就是一個模塊,這個文件能夠是js代碼,JSON 或者編譯過的C/C++擴展。this

接下來寫一個實例。spa

建立模塊與引入模塊很簡單,首先咱們寫一個hello.js文件 代碼以下code

// 模塊的主要邏輯
function Hello() {
    let name
    this.setName = function(argName) {
        name = argName
    }
    this.sayHello = function() {
        console.log('Hello' + name)
    }
} 
module.exports = Hello //導出模塊

exports 和 module.exports 的使用
若是要對外暴露屬性或方法,就用 exports 就行,要暴露對象(相似class,包含了不少屬性和方法),就用 module.exports。對象

而後寫一個倒入模塊的文件 main.jsip

const Hello = require('./hello') // 這裏使用require導入剛剛寫好的hello.js 

let hello = new Hello()
hello.setName('思否')
hello.sayHello()

服務端的模塊的加載流程it

node.js中有原生模塊和三種文件模塊 ,在使用中只須要require,用起來很簡單,可是內部的加載很複雜,其加載優先級也各有不一樣,入下圖所示io

clipboard.png

按圖中所示,無論是哪一種模塊,加載機制都會優先檢查文件是否在模塊緩存區中,緩存區的意義在於防止某一個模塊被反覆加載。緩存區域分爲兩種,一種是文件模塊緩存區,也就是咱們說的三種文件類型,還有一種就是原生模塊緩存區,例如http fs等原生模塊。

相關文章
相關標籤/搜索