require、緩存

什麼是require?javascript

  -Node使用CommonJS模塊規範,內置require函數用於加載模塊文件java

  -require的基本功能是>讀入並執行一個javascript文件,而後返回該模塊的exports對象node

  -若沒有發現指定模塊,則報錯json

本身實現require函數緩存

  -定義模塊函數

  

  -實現測試

  

  註釋ui

  

rquire擴展名對象

  --require加載文件時能夠省略擴展名blog

require加載文件規則

  -經過 ./ 或者 ../ 開頭

    --按照相對路徑從當前文件所在文件夾開始尋找模塊

  -經過 / 開頭

    --以系統根目錄開始尋找模塊

  -不以 ./ 或 / 開頭,分爲兩種狀況

    --表示加載的是一個默認提供的核心模塊> 位於Node的系統安裝目錄中

    --從當前目錄向上搜索node_modules目錄中的文件

        ---若是本身定義一個模塊在node_modules目錄中,而加載時不以 ./ 或 / 開頭,直接以文件名加載,不管node_modules在什麼位置,均可以被加載到,由於當加載時會一直向上去找,一直到找不到爲止,此加載符合就近原則

  -模塊名稱重複,系統模塊的優先級別最高

require不只能夠載入js模塊,也能夠載入JSON對象

  -加載json文件,大部分用於讀取配置信息

  -require也能夠加載文件夾,加載文件夾分爲兩種狀況

    --若文件夾中不存在package.json,直接加載文件夾內的index.js文件

    --若package.json文件存在,則根據配置問價信息加載

 模塊的緩存

  -第一次加載某個緩存時,Node會緩存該模塊,之後再加載該模塊,就直接從緩存取出該模塊的module.exports屬性(不會再執行該模塊)

  -若是須要屢次執行模塊中的代碼,通常可讓模塊暴漏行爲(函數)

  -模塊的緩存能夠經過require.cache拿到,一樣也能夠刪除

間的的測試緩存

  -模塊

    --module.exports = new Date();

  -文件

    

  執行文件能夠看到,獲得的毫秒是不變的,說明已經緩存。

清空緩存

  -在加載模塊以前進行緩存的清楚

  

  -何時須要清楚緩存?

    --因爲能夠加載json數據,因此每次數據更新時,須要同步更新json數據,此時就須要清除緩存,通常都是對數據作清除緩存操做

 若是不須要緩存,能夠將暴漏的屬性改成暴漏方法(行爲),由於暴漏的方法在每一次加載的時候都會執行,從而不會進行緩存。

相關文章
相關標籤/搜索