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 相关文章推荐
JavaScript 监听textarea中按键事件
Oct 08 Javascript
javascript dom 基本操作小结
Apr 11 Javascript
没有document.getElementByName方法
Aug 19 Javascript
jquery div拖动效果示例代码
Dec 08 Javascript
jQuery中get()方法用法实例
Dec 27 Javascript
浅谈JavaScript异常处理语句
Jun 26 Javascript
jquery mobile开发常见问题分析
Jan 21 Javascript
基于JQuery的$.ajax方法进行异步请求导致页面闪烁的解决办法
May 10 Javascript
浅谈$('div a') 与$('div>a')的区别
Jul 18 Javascript
基于Vue2x的图片预览插件的示例代码
May 14 Javascript
jQuery实现input输入框获取焦点与失去焦点时提示的消失与显示功能示例
May 27 jQuery
详解如何在JS代码中消灭for循环
Dec 11 Javascript
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 xml实例 留言本
2009/03/20 PHP
Yii框架上传图片用法总结
2016/03/28 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
2016/11/18 PHP
jQuery 注意事项 与原因分析
2009/04/24 Javascript
js 创建书签小工具之理论
2011/02/25 Javascript
JS获取文本框,下拉框,单选框的值的简单实例
2014/02/26 Javascript
微信分享的标题、缩略图、连接及描述设置方法
2014/10/14 Javascript
CSS+JS实现点击文字弹出定时自动关闭DIV层菜单的方法
2015/05/12 Javascript
jquery ajax双击div可直接修改div中的内容
2016/03/04 Javascript
js仿QQ中对联系人向左滑动、滑出删除按钮的操作
2016/04/07 Javascript
DOM操作和jQuery实现选项移动操作的简单实例
2016/06/07 Javascript
jQuery根据name属性进行查找的用法分析
2016/06/23 Javascript
js轮播图无缝滚动效果
2017/06/17 Javascript
vue.js 微信支付前端代码分享
2018/02/10 Javascript
mpvue小程序仿qq左滑置顶删除组件
2018/08/03 Javascript
jQuery中DOM操作原则实例分析
2019/08/01 jQuery
解决webpack多页面内存溢出的方法示例
2019/10/08 Javascript
Python中使用第三方库xlutils来追加写入Excel文件示例
2015/04/05 Python
Python利用splinter实现浏览器自动化操作方法
2018/05/11 Python
python求质数的3种方法
2018/09/28 Python
python模拟菜刀反弹shell绕过限制【推荐】
2019/06/25 Python
Python多线程爬取豆瓣影评API接口
2019/10/22 Python
Pandas数据离散化原理及实例解析
2019/11/16 Python
使用PyTorch将文件夹下的图片分为训练集和验证集实例
2020/01/08 Python
jupyter notebook远程访问不了的问题解决方法
2021/01/11 Python
matplotlib阶梯图的实现(step())
2021/03/02 Python
css3 响应式媒体查询的示例代码
2019/09/25 HTML / CSS
非常震撼的纯CSS3人物行走动画
2016/02/24 HTML / CSS
HTML利用九宫格原理进行网页布局
2020/03/13 HTML / CSS
TripAdvisor台湾:全球最大旅游网站
2018/08/26 全球购物
澳大利亚领先的在线礼品网站:Gifts Australia
2020/08/15 全球购物
计算机专业学生求职信分享
2013/12/15 职场文书
校本教研活动总结
2014/07/01 职场文书
2015年学校禁毒工作总结
2015/05/27 职场文书
Win10防火墙白名单怎么设置?Win10添加防火墙白名单方法
2022/04/06 数码科技
golang定时器
2022/04/14 Golang