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:/node/gys/2.js37 38 /*require.cache39 * 在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 * */
新闻热点
疑难解答