• node中的require


     1 /*在node中,可以使用require()函数来加载模块.
     2  * require函数使用一个参数,参数值可以带有完整路径的模块的文件名,也可以为模块名.当使用node中提供的模块时,在require函数中只需要指定模块名即可.
     3  * */
     4 //建立一个页面2.js;代码如下
     5 var name="思思博士";
     6 exports.name=name;
     7 //建立一个页面1.js;代码如下
     8 var two=require("./2.js");
     9 console.log(two.name);
    10 //输出结果:思思博士
    11 
    12 /*
    13  * 在node中所有的脚本文件都是一个模块文件,因此1.js也是一个模块文件,又由于该文件是在命令行窗口中通过node命令被直接运行的,因此在node中该模块文件被定义为应用程序的主模块
    14  * 可以用如下的方法检测出当前的模块是否是主模块
    15  * */
    16 if(module===require.main){
    17     console.log("当前模块时主模块");
    18 }
    19 //输出结果:当前模块时主模块
    20 
    21 //2.js代码
    22 var name="思思博士";
    23 console.log(name);
    24 exports.name=name;
    25 
    26 //1.js代码:
    27 var two=require("./2.js");
    28 var two=require("./2.js");
    29 //虽然引用了2次,但是只是执行了1次console.log(name)的输出.
    30 
    31 /*require.resolve(str)
    32  * 在node中,可以使用这个函数来查询某个模块文件的带有完整绝对路径的文件名.
    33  * */
    34 var url=require.resolve("./2");
    35 console.log(url);
    36 //输出结果:E:
    odegys2.js
    37 
    38 /*require.cache
    39  * 在node中,这个属性代表了所有已被加载模块的缓存区.
    40  * */
    41 
    42 var two=require("./2.js");
    43 var cache=require.cache;
    44 console.log(cache);
    45 /*输出结果:
    46  * { 'E:\node\gys\1.js':
    47  { id: '.',
    48  exports: {},
    49  parent: null,
    50  filename: 'E:\node\gys\1.js',
    51  loaded: false,
    52  children: [ [Object] ],
    53  paths:
    54  [ 'E:\node\gys\node_modules',
    55  'E:\node\node_modules',
    56  'E:\node_modules' ] },
    57  'E:\node\gys\2.js':
    58  { id: 'E:\node\gys\2.js',
    59  exports: { name: '思思博士' },
    60  parent:
    61  { id: '.',
    62  exports: {},
    63  parent: null,
    64  filename: 'E:\node\gys\1.js',
    65  loaded: false,
    66  children: [Object],
    67  paths: [Object] },
    68  filename: 'E:\node\gys\2.js',
    69  loaded: true,
    70  children: [],
    71  paths:
    72  [ 'E:\node\gys\node_modules',
    73  'E:\node\node_modules',
    74  'E:\node_modules' ] } }
    75  * */
    76 
    77 
    78 //2.js代码
    79 var name="思思博士";
    80 console.log(name);
    81 //1.js代码
    82 //当使用delete关键字删除缓存区中缓存的某个模块对象后,下次加载该模块时将重新运行该模块中的代码.使用代码:
    83 
    84 var two=require("./2.js");
    85 var two1=require("./2.js");
    86 console.log("删除前")
    87 delete require.cache[require.resolve("./2.js")];
    88 console.log("删除后");
    89 var two2=require("./2.js");
    90 /*
    91  * 输出结果:
    92  * 思思博士
    93  * 删除前
    94  * 删除后
    95  * 思思博士
    96  * */
  • 相关阅读:
    学习加密(四)spring boot 使用RSA+AES混合加密,前后端传递参数加解密
    vue实现rsa加密,数字签名,md5加密等
    Thymeleaf 基本用法总结
    空格去
    SpringBoot+Shiro学习(七):Filter过滤器管理
    vue-lazyload的使用
    vue中使用base64和md5
    vuex使用一
    webpack使用七
    webpack使用六
  • 原文地址:https://www.cnblogs.com/guoyansi19900907/p/4003961.html
Copyright © 2020-2023  润新知