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 组件之旅(一)分析和设计
Oct 28 Javascript
Javascript中call和apply函数的比较和使用实例
Feb 03 Javascript
自己动手写的jquery分页控件(非常简单实用)
Oct 28 Javascript
AngularJS控制器继承自另一控制器
May 09 Javascript
微信小程序 数组中的push与concat的区别
Jan 05 Javascript
webpack教程之webpack.config.js配置文件
Jul 05 Javascript
ES6/JavaScript使用技巧分享
Dec 14 Javascript
vue实现一个炫酷的日历组件
Oct 08 Javascript
微信小程序移动拖拽视图-movable-view实例详解
Aug 17 Javascript
Electron整合React使用搭建开发环境的步骤详解
Jun 07 Javascript
Vue 监听元素前后变化值实例
Jul 29 Javascript
WebRTC记录音视频流(web技术分享)
Feb 24 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作的文本留言本的例子(四)
2006/10/09 PHP
PHP array_flip() 删除重复数组元素专用函数
2010/05/16 PHP
php编程实现获取excel文档内容的代码实例
2011/06/28 PHP
几种有用的变型 PHP中循环语句的用法介绍
2012/01/30 PHP
PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍
2015/01/20 PHP
PHP使用正则表达式获取微博中的话题和对象名
2015/07/18 PHP
PHP数据库连接mysql与mysqli对比分析
2016/01/04 PHP
PHP 极验验证码实例讲解
2016/09/29 PHP
php微信分享到朋友圈、QQ、朋友、微博
2019/02/18 PHP
HTML TO JavaScript 转换
2006/06/26 Javascript
超简单的jquery的AJAX用法
2010/05/10 Javascript
JavaScript学习点滴 call、apply的区别
2010/10/22 Javascript
JS中的substring和substr函数的区别说明
2013/05/07 Javascript
JS中的prototype与面向对象的实例讲解
2013/05/22 Javascript
jquery ready(fn)事件使用介绍
2013/08/21 Javascript
JavaScript中Math对象方法使用概述
2014/01/02 Javascript
使用jquery制作弹出框效果
2015/04/03 Javascript
基于jQuery实现弹出可关闭遮罩提示框实例代码
2016/07/18 Javascript
使用JS和canvas实现gif动图的停止和播放代码
2017/09/01 Javascript
详谈js原型继承的一些问题
2017/09/06 Javascript
详解React中传入组件的props改变时更新组件的几种实现方法
2018/09/13 Javascript
如何在 JavaScript 中更好地利用数组
2018/09/27 Javascript
JavaScript代码异常监控实现过程详解
2020/02/17 Javascript
理解JavaScript中的Proxy 与 Reflection API
2020/09/21 Javascript
Python基于回溯法子集树模板解决数字组合问题实例
2017/09/02 Python
numpy中loadtxt 的用法详解
2018/08/03 Python
django admin.py 外键,反向查询的实例
2019/07/26 Python
如何爬取通过ajax加载数据的网站
2019/08/15 Python
Win10 安装PyCharm2019.1.1(图文教程)
2019/09/29 Python
Python中bisect的用法及示例详解
2020/07/20 Python
CSS3混合模式mix-blend-mode/background-blend-mode简介
2018/03/15 HTML / CSS
Html5 FileReader实现即时上传图片功能实例代码
2014/09/01 HTML / CSS
超级搞笑检讨书
2014/01/15 职场文书
关于责任的演讲稿
2014/05/20 职场文书
golang 实现对Map进行键值自定义排序
2021/04/28 Golang
Nginx流量拷贝ngx_http_mirror_module模块使用方法详解
2022/04/07 Servers