Nodejs-模塊化結構


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

  

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM