模塊初始化
一個模塊中的JS代碼僅在模塊第一次被使用時執行一次,並在執行過程中初始化模塊的導出對象。之后,緩存起來的導出對象被重復利用。
主模塊
通過命令行參數傳遞給NodeJS以啟動程序的模塊被稱為主模塊。主模塊負責調度組成整個程序的其它模塊完成工作。例如通過以下命令啟動程序時,main.js就是主模塊。
$ node main.js
完整示例
例如有以下目錄。
- /home/user/hello/
- util/
counter.js
main.js
其中counter.js內容如下:
- util/
var i = 0;
function count() {
return ++i;
}
exports.count = count;
該模塊內部定義了一個私有變量i,並在exports對象導出了一個公有方法count。
主模塊main.js內容如下:
var counter1 = require('./util/counter');
var counter2 = require('./util/counter');
console.log(counter1.count());
console.log(counter2.count());
console.log(counter2.count());
運行該程序的結果如下:
$ node main.js
1
2
3
可以看到,counter.js並沒有因為被require了兩次而初始化兩次。