NodejS---require的機制


  假設Y是路徑,X是文件名或目錄名,當 Nodejs 遇到 require(Y+X) 時,按照下面的順序處理:

  1、如果 X 是核心模塊(例如:require("http"))

  a.返回該模塊

  b.不再繼續執行

  2、如果Y是以“./”、“/”或“../”開頭

  a.優先從緩存中加載

  b.把X當成文件,從指定路徑開始,依次查找下面文件:X、X.js、X.json、X.node,只要其中一個存在,就返回該文件,不再繼續執行

  c..把X當成目錄,從指定路徑開始,依次查找下面文件:X/package.json(main字段)、X/index.js、X/index.json、X/index.node,只要其中一個存在,就返回該文件,不再繼續執行

  3.如果 X 不是核心模塊,也沒有以“./”、“/”或“../”開頭,則Nodejs會從當前模塊的父目錄開始,嘗試從它的 /node_module 目錄里加載模塊,如果還是沒有找到,則移動到再上一層父目錄,直到文件系統的根目錄

  4.拋出“not found”

注意:require第一步是從緩存中加載某個模塊,此時就算你更新了目標模塊的內容,我們實際加載到的內存中的內容是不變的!!!!!!!!

//modelJs.js
console.log("modelJs被加載了");
var name="miyue";
//requireJs.js
    setInterval(function () {
        var modelJs=require("./modelJs");
        console.log(modelJs.name);//miyue
    },10000)

 

 


免責聲明!

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



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