zoukankan      html  css  js  c++  java
  • 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)

  • 相关阅读:
    HttpWebRequest 的一个 异步封装
    AcWing 6 多重背包问题III【单调对列优化】
    AcWing 8. 二维费用的背包问题
    AcWing 1019. 庆功会
    P1421 小玉买文具
    P5709 【深基2.习6】Apples Prologue / 苹果和虫子
    P2181 对角线
    AcWing 1020. 潜水员
    AcWing 1013. 机器分配【分组背包+求方案数】
    AcWing 7. 混合背包问题
  • 原文地址:https://www.cnblogs.com/luzhanshi/p/11791925.html
Copyright © 2011-2022 走看看