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