1.模塊(一個文件就是一個模塊)

獲取當前腳本所在的路徑
_ _dirname
文件路徑
_ _filename
(1)創建模塊(module1.js)
const fs=require('fs');
//所有的文件操作都必須是絕對路徑(物理路徑)
fs.readFile(__dirname+'/../list.md',(error,content)=>{
if(error){
throw error;
}
console.log(content.toString());
});
(2)載入模塊(011.js)
const moudel1=require('./modules/module1.js');//載入模塊
(3)執行node 011.js可以拿到module1.js中的東西
路徑位置:

執行結果:

2.module(模塊對象)


3.exports
映射到module.exports的別名
module.exports{};
var exports=module.exports{};
4.require
(1)Node使用CommonJS模塊規范,內置的require函數用於加載模塊文件
(2)require的基本功能是,讀入並執行一個JavaScript文件,然后返回該模塊的exports對象
如果沒有發現指定模塊,會報錯
require不僅僅可以載入JS模塊,也可以載入JSON對象(大部分用於讀取配置信息)

5.模塊緩存
(1)第一次加載某個模塊時,Node會緩存該模塊。以后再加載該模塊,就直接從緩存中取出該模塊。
module.exports屬性不會再次執行該模塊
04.js
//模塊的緩存,setInterval中的箭頭函數每隔一秒執行一次
setInterval(()=>{
var date=require('./modules/module3.js');
console.log(date.getTime());
},1000);
module3.js
module.exports=new Date();//導出成員


(2)如何得到緩存和刪除緩存
得到緩存,通過require.cache
require.cache記錄node應用程序啟動過程中所有的緩存
//模塊的緩存
setInterval(()=>{
var date=require('./modules/module3.js');
console.log(require.cache);
},1000);

刪除緩存,通過delete require.cache[key],一般不會清空緩存的,除非更新JSON數據的時候,要更新,就要清空緩存
//模塊的緩存
setInterval(()=>{
Object.keys(require.cache).forEach((key)=>{
delete require.cache[key];//不能直接刪除用delete require.cache,要進行遍歷,把里面的成員刪掉
});
var date=require('./modules/module3.js');
console.log(date.getTime());
},1000);

