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 特殊字符串
Feb 25 Javascript
jQuery创建自己的插件(自定义插件)的方法
Jun 10 Javascript
extjs 04_grid 单击事件新发现
Nov 27 Javascript
原生JS京东轮播图代码
Mar 22 Javascript
JS实现复选框的全选和批量删除功能
Apr 05 Javascript
Angular 4.x 动态创建表单实例
Apr 25 Javascript
深入理解Vue父子组件生命周期执行顺序及钩子函数
Aug 12 Javascript
JS实现百度网盘任意文件强制下载功能
Aug 31 Javascript
webpack4打包vue前端多页面项目
Sep 17 Javascript
jQuery.validate.js表单验证插件的使用代码详解
Oct 22 jQuery
javascript实现blob加密视频源地址的方法
Aug 08 Javascript
js中forEach,for in,for of循环的用法示例小结
Mar 14 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
乐信RP2100的电路分析和打磨
2021/03/02 无线电
php木马攻击防御之道
2008/03/24 PHP
YII Framework框架教程之日志用法详解
2016/03/14 PHP
PHP7如何开启Opcode打造强悍性能详解
2018/05/11 PHP
PHP7引入的"??"和"?:"的区别讲解
2019/04/08 PHP
jquery Firefox3.5中操作select的问题
2009/07/10 Javascript
关于JavaScript的with 语句的使用方法
2011/05/09 Javascript
EXTJS记事本 当CompositeField遇上RowEditor
2011/07/31 Javascript
JavaScript使用replace函数替换字符串的方法
2015/04/06 Javascript
js实现当前输入框高亮显示的方法
2015/08/19 Javascript
Angular2 多级注入器详解及实例
2016/10/30 Javascript
移动端日期插件Mobiscroll.js使用详解
2016/12/19 Javascript
Angular如何引入第三方库的方法详解
2017/07/13 Javascript
mui back 返回刷新页面的实例
2017/12/06 Javascript
nodejs基于express实现文件上传的方法
2018/03/19 NodeJs
Vue2.0 实现移动端图片上传功能
2018/05/30 Javascript
Angularjs之ngModel中的值验证绑定方法
2018/09/13 Javascript
Vue中 v-if/v-show/插值表达式导致闪现的原因及解决办法
2018/10/12 Javascript
[00:17]游戏风云独家报道:DD赛后说出数字秘密 吓死你们啊!
2014/07/13 DOTA
[00:28]DOTA2北京网鱼队选拔赛
2015/04/08 DOTA
python正则匹配抓取豆瓣电影链接和评论代码分享
2013/12/27 Python
PyQt5主窗口动态加载Widget实例代码
2018/02/07 Python
Python爬取数据保存为Json格式的代码示例
2019/04/09 Python
python装饰器常见使用方法分析
2019/06/26 Python
Python求两点之间的直线距离(2种实现方法)
2019/07/07 Python
python数据处理之如何选取csv文件中某几行的数据
2019/09/02 Python
使用npy转image图像并保存的实例
2020/07/01 Python
HTML5 video循环播放多个视频的方法步骤
2020/08/06 HTML / CSS
英国领先的运动物理治疗供应公司:Vivomed
2018/07/14 全球购物
亚马逊海外购:亚马逊美国、英国、日本、德国直邮
2021/03/18 全球购物
口才训练演讲稿范文
2014/09/16 职场文书
2014年科技工作总结
2014/11/26 职场文书
故宫导游词
2015/01/31 职场文书
会计继续教育培训心得体会
2016/01/19 职场文书
Java日常练习题,每天进步一点点(38)
2021/07/26 Java/Android
ubuntu下常用apt命令介绍
2022/06/05 Servers