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 相关文章推荐
jquery中ajax学习笔记3
Oct 16 Javascript
jquery实现的带缩略图的焦点图片切换(自动播放/响应鼠标动作)
Jan 23 Javascript
实现局部遮罩与关闭原理及代码
Feb 04 Javascript
js+div实现图片滚动效果代码
Feb 10 Javascript
angularjs中的e2e测试实例
Dec 06 Javascript
javascript DIV实现跟随鼠标移动
Mar 19 Javascript
jquery ztree异步搜索(搜叶子)实践
Feb 25 Javascript
实现JavaScript的组成----BOM和DOM详解
May 18 Javascript
5种JavaScript脚本加载的方式
Jan 16 Javascript
JS实现验证码倒计时的注册页面
Jan 02 Javascript
原生js实现五子棋游戏
May 28 Javascript
JavaScript中变量提升和函数提升的详解
Aug 07 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
如何让thinkphp在模型中自动完成session赋值小教程
2014/09/05 PHP
让你的博文自动带上缩址的实现代码,方便发到微博客上
2010/12/28 Javascript
jquery 触发a链接点击事件解决方案
2013/05/02 Javascript
简单的Jquery全选功能
2013/11/07 Javascript
浅谈js内置对象Math的属性和方法(推荐)
2016/09/19 Javascript
微信小程序 详解Page中data数据操作和函数调用
2017/01/12 Javascript
微信小程序 详解下拉加载与上拉刷新实现方法
2017/01/13 Javascript
Angular 2.x学习教程之结构指令详解
2017/05/25 Javascript
vue中如何创建多个ueditor实例教程
2017/11/14 Javascript
说说node中的可读流和可写流的区别
2018/06/01 Javascript
js实现页面多个日期时间倒计时效果
2019/06/20 Javascript
微信小程序 冒泡事件原理解析
2019/09/27 Javascript
浅谈vue中组件绑定事件时是否加.native
2019/11/09 Javascript
微信小程序商品详情页底部弹出框
2019/11/22 Javascript
JQuery常用简单动画操作方法回顾与总结
2019/12/07 jQuery
vue+canvas实现移动端手写签名
2020/05/21 Javascript
微信小程序实现页面左右滑动
2020/11/16 Javascript
一则python3的简单爬虫代码
2014/05/26 Python
在Python中使用matplotlib模块绘制数据图的示例
2015/05/04 Python
Python虚拟环境项目实例
2017/11/20 Python
Python使用pymysql从MySQL数据库中读出数据的方法
2018/07/25 Python
Python实现App自动签到领取积分功能
2018/09/29 Python
python程序中的线程操作 concurrent模块使用详解
2019/09/23 Python
Python标准库shutil模块使用方法解析
2020/03/10 Python
django有哪些好处和优点
2020/09/01 Python
html5 localStorage本地存储_动力节点Java学院整理
2017/07/06 HTML / CSS
NBA德国官方网上商店:NBA Store德国
2018/04/13 全球购物
JBL美国官方商店:扬声器、耳机等
2019/12/01 全球购物
财务方面个人工作的自我评价
2013/12/28 职场文书
小学生安全保证书
2014/02/01 职场文书
公益活动邀请函
2014/02/05 职场文书
企业口号大全
2014/06/12 职场文书
2014年连锁店圣诞节活动方案
2014/12/09 职场文书
2015年人事科工作总结
2015/04/28 职场文书
关于PHP数组迭代器的使用方法实例
2021/11/17 PHP
使用kubeadm命令行工具创建kubernetes集群
2022/03/31 Servers