在nodejs中乙個檔案就是乙個模組。nodejs提供了exports和require兩個物件,其中exports是模組公開的介面,require用於從外部獲取乙個模組的介面,即所獲取模組的exports物件。
演示示例:
新建乙個module.js檔案,**如下:
var同一目錄下,新建乙個getmodule.js檔案,**如下:name;
exports.setname = function
(thyname)
exports.sayhello = function
()
var mymodule = require('./module');執行示例:在安裝了nodejs環境下,開啟cmd命令視窗,進入**檔案所在資料夾,執行node getmodule.js。結果如下:mymodule.setname('joy');
mymodule.sayhello();
以上示例中,module.js通過exports物件把setname和sayhello作為模組的訪問介面,在getmodule.js中通過require('./module')載入這個模組,然後就可以直接訪問module.js中exports物件的成員函式了。npm提供的上萬個模組都是通過這種簡單的方式搭建起來的。
單次載入
require不會重複載入模組,也就是說無論呼叫多少次require,獲得的模組都是同乙個。
我們在getmodule.js的基礎上作修改如下:
var hello1 = require('./module');執行結果:hello1.setname('joy');
var hello2 = require('./module');
hello2.setname('joy2');
hello1.sayhello();
執行後發現輸出結果是hello joy2,這是因為hello1和hello2指向的是同乙個例項,因此hello1.setname的結果被hello2.setname覆蓋,最終輸出結果是由後者決定的。
理解nodejs的module模組兒
在 node.js 模組系統中,每個檔案都視為獨立的模組,node在執行某個模組兒時會生成乙個module物件 module paths users leinov github node api module node modules users leinov github node api nod...
理解nodejs的module模組兒
在 node.js 模組系統中,每個檔案都視為獨立的模組,node在執行某個模組兒時會生成乙個module物件 module paths users leinov github node api module node modules users leinov github node api nod...
Node核心模組 Module
分類 載入機制 路徑分析 檔案定位 載入封裝 function exports,require,module,filename,dirname 編譯執行 快取delete require.cache id 模組迴圈載入console.log a 開始 exports.done false const...