node.js中的require使用详解


Posted in Javascript onDecember 15, 2014

代码注释里已经描述的非常的清晰,这里就不多废话了,直接奉上代码:

/*在node中,可以使用require()函数来加载模块.

 * require函数使用一个参数,参数值可以带有完整路径的模块的文件名,也可以为模块名.当使用node中提供的模块时,在require函数中只需要指定模块名即可.

 * */

//建立一个页面2.js;代码如下

var name="思思博士";

exports.name=name;

//建立一个页面1.js;代码如下

var two=require("./2.js");

console.log(two.name);

//输出结果:思思博士
/*

 * 在node中所有的脚本文件都是一个模块文件,因此1.js也是一个模块文件,又由于该文件是在命令行窗口中通过node命令被直接运行的,因此在node中该模块文件被定义为应用程序的主模块

 * 可以用如下的方法检测出当前的模块是否是主模块

 * */

if(module===require.main){

    console.log("当前模块时主模块");

}

//输出结果:当前模块时主模块
//2.js代码

var name="思思博士";

console.log(name);

exports.name=name;
//1.js代码:

var two=require("./2.js");

var two=require("./2.js");

//虽然引用了2次,但是只是执行了1次console.log(name)的输出.
/*require.resolve(str)

 * 在node中,可以使用这个函数来查询某个模块文件的带有完整绝对路径的文件名.

 * */

var url=require.resolve("./2");

console.log(url);

//输出结果:E:\node\gys\2.js
/*require.cache

 * 在node中,这个属性代表了所有已被加载模块的缓存区.

 * */
var two=require("./2.js");

var cache=require.cache;

console.log(cache);

/*输出结果:

 * { 'E:\\node\\gys\\1.js':

 { id: '.',

 exports: {},

 parent: null,

 filename: 'E:\\node\\gys\\1.js',

 loaded: false,

 children: [ [Object] ],

 paths:

 [ 'E:\\node\\gys\\node_modules',

 'E:\\node\\node_modules',

 'E:\\node_modules' ] },

 'E:\\node\\gys\\2.js':

 { id: 'E:\\node\\gys\\2.js',

 exports: { name: '思思博士' },

 parent:

 { id: '.',

 exports: {},

 parent: null,

 filename: 'E:\\node\\gys\\1.js',

 loaded: false,

 children: [Object],

 paths: [Object] },

 filename: 'E:\\node\\gys\\2.js',

 loaded: true,

 children: [],

 paths:

 [ 'E:\\node\\gys\\node_modules',

 'E:\\node\\node_modules',

 'E:\\node_modules' ] } }

 * */


//2.js代码

var name="思思博士";

console.log(name);

//1.js代码

//当使用delete关键字删除缓存区中缓存的某个模块对象后,下次加载该模块时将重新运行该模块中的代码.使用代码:
var two=require("./2.js");

var two1=require("./2.js");

console.log("删除前")

delete require.cache[require.resolve("./2.js")];

console.log("删除后");

var two2=require("./2.js");

/*

 * 输出结果:

 * 思思博士

 * 删除前

 * 删除后

 * 思思博士

 * */

小伙伴们是否清楚了node.js中require的使用方法了呢,如有疑问,请留言。

Javascript 相关文章推荐
js nextSibling属性和previousSibling属性概述及使用注意
Feb 16 Javascript
jQuery中:nth-child选择器用法实例
Dec 31 Javascript
Java  Spring 事务回滚详解
Oct 17 Javascript
Vue实现动态显示textarea剩余字数
May 22 Javascript
javascript中mouseenter与mouseover的异同
Jun 06 Javascript
深究AngularJS中ng-drag、ng-drop的用法
Jun 12 Javascript
JS+WCF实现进度条实时监测数据加载量的方法详解
Dec 19 Javascript
vue写h5页面的方法总结
Feb 12 Javascript
JS中min函数实例讲解
Feb 18 Javascript
从零到一详聊创建Vue工程及遇到的常见问题
Apr 25 Javascript
vue npm install 安装某个指定的版本操作
Aug 11 Javascript
vue 导航守卫和axios拦截器有哪些区别
Dec 19 Vue.js
node.js中的favicon.ico请求问题处理
Dec 15 #Javascript
分享20个提升网站界面体验的jQuery插件
Dec 15 #Javascript
分享33个jQuery与CSS3实现的绚丽鼠标悬停效果
Dec 15 #Javascript
60个很实用的jQuery代码开发技巧收集
Dec 15 #Javascript
node中socket.io的事件使用详解
Dec 15 #Javascript
node.js中使用socket.io的方法
Dec 15 #Javascript
Lua表达式和控制结构学习笔记
Dec 15 #Javascript
You might like
PHP实现大数(浮点数)取余的方法
2017/02/18 PHP
createElement动态创建HTML对象脚本代码
2008/11/24 Javascript
JavaScript 基于原型的对象(创建、调用)
2009/10/16 Javascript
javascript 在网页中的运用(asp.net)
2009/11/23 Javascript
Javascript中的window.event.keyCode使用介绍
2011/04/26 Javascript
用jquery方法操作radio使其默认选项是否
2013/09/10 Javascript
JQuery radio(单选按钮)操作方法汇总
2015/04/15 Javascript
在JavaScript的AngularJS库中进行单元测试的方法
2015/06/23 Javascript
JS自动倒计时30秒后按钮才可用(两种场景)
2015/08/31 Javascript
Bootstrap导航栏各元素操作方法(表单、按钮、文本)
2015/12/28 Javascript
深入分析Javascript事件代理
2016/01/30 Javascript
浅析函数声明和函数表达式——函数声明的声明提前
2016/05/03 Javascript
深入理解JavaScript中Ajax
2016/08/02 Javascript
使用Bootstrap和Vue实现用户信息的编辑删除功能
2017/10/25 Javascript
详解JavaScript的数据类型以及数据类型的转换
2019/04/20 Javascript
ant-design-vue按需加载的坑的解决
2020/05/14 Javascript
vue使用自定义事件的表单输入组件用法详解【日期组件与货币组件】
2020/06/01 Javascript
Vue结合路由配置递归实现菜单栏功能
2020/06/16 Javascript
详解JavaScript作用域、作用域链和闭包的用法
2020/09/03 Javascript
python各种语言间时间的转化实现代码
2016/03/23 Python
图文讲解选择排序算法的原理及在Python中的实现
2016/05/04 Python
python实现简单日志记录库glog的使用
2019/12/13 Python
Pytorch损失函数nn.NLLLoss2d()用法说明
2020/07/07 Python
澳大利亚领先的在线美容商城:Adore Beauty
2017/04/14 全球购物
美国正宗奢华复古手袋、珠宝及配饰网站:What Goes Around Comes Around
2018/07/21 全球购物
新闻记者个人求职的自我评价
2013/11/28 职场文书
综合办公室主任职责
2013/12/16 职场文书
办公自动化专业大学生职业规划书
2014/03/06 职场文书
讲解员培训方案
2014/05/04 职场文书
2014年高三班主任工作总结
2014/12/05 职场文书
公司岗位说明书
2015/10/08 职场文书
《用字母表示数》教学反思
2016/02/17 职场文书
经典励志格言:每日一句,让你每天充满能量
2019/08/16 职场文书
授权协议书范本(3篇)
2019/10/15 职场文书
Android Rxjava3 使用场景详解
2022/04/07 Java/Android
码云(gitee)通过git自动同步到阿里云服务器
2022/12/24 Servers