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);