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 关键字“拖曳搜索”之“拖曳”以及 图片“提示自适应放大”效果 的实现
Apr 18 Javascript
Jquery css函数用法(判断标签是否拥有某属性)
May 28 Javascript
新发现一个骗链接的方法(js读取cookies)
Jan 11 Javascript
基于jquery实现的省市区级联无ajax
Sep 24 Javascript
JavaScript中的操作符类型转换示例总结
May 30 Javascript
JavaScript必知必会(十) call apply bind的用法说明
Jun 08 Javascript
利用js的闭包原理做对象封装及调用方法
Apr 07 Javascript
Node.js编写CLI的实例详解
May 17 Javascript
微信小程序商品到详情的实现
Jun 27 Javascript
看看“疫苗查询”小程序有温度的代码
Jul 31 Javascript
JavaScript高阶教程之“==”隐藏下的类型转换
Apr 11 Javascript
纯JS开发baguetteBox.js响应式画廊插件
Jun 28 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
用文本文件制作留言板提示(上)
2006/10/09 PHP
PHPMYADMIN 简明安装教程 推荐
2010/03/07 PHP
利用谷歌 Translate API制作自己的翻译脚本
2014/06/04 PHP
php图片上传类 附调用方法
2016/05/15 PHP
Mootools 1.2教程 输入过滤第一部分(数字)
2009/09/15 Javascript
juqery 学习之四 筛选查找
2010/11/30 Javascript
JS实现随机化快速排序的实例代码
2013/08/01 Javascript
父元素与子iframe相互获取变量和元素对象的具体实现
2013/10/15 Javascript
js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)
2013/12/11 Javascript
深入理解JavaScript中的浮点数
2016/05/18 Javascript
Jquery和BigFileUpload实现大文件上传及进度条显示
2016/06/27 Javascript
AngularJS自定义插件实现网站用户引导功能示例
2016/11/07 Javascript
微信浏览器禁止页面下拉查看网址实例详解
2017/06/28 Javascript
JavaScript实现三级联动菜单效果
2017/08/16 Javascript
JS实现左边列表移到到右边列表功能
2018/03/28 Javascript
在Python的Django框架中simple-todo工具的简单使用
2015/05/30 Python
快速入手Python字符编码
2016/08/03 Python
Python实现的求解最大公约数算法示例
2018/05/03 Python
Python+AutoIt实现界面工具开发过程详解
2019/08/07 Python
python读取Excel表格文件的方法
2019/09/02 Python
Python基于类路径字符串获取静态属性
2020/03/12 Python
记一次Django响应超慢的解决过程
2020/09/17 Python
Django URL参数Template反向解析
2020/11/24 Python
HTML5注册页面示例代码
2014/03/27 HTML / CSS
施华洛世奇水晶荷兰官方网站:SWAROVSKI荷兰
2017/05/12 全球购物
美国名牌太阳镜折扣网站:Eyedictive
2017/05/15 全球购物
如何理解transaction事务的概念
2015/05/27 面试题
《石榴》教学反思
2014/03/02 职场文书
社区五一劳动节活动总结
2015/02/09 职场文书
物流业务员岗位职责
2015/04/03 职场文书
工作证明格式范文
2015/06/15 职场文书
2016新年晚会开场白
2015/12/03 职场文书
村党总支部公开承诺书2016
2016/03/25 职场文书
导游词之江南周庄
2019/12/06 职场文书
mysql 乱码 字符集latin1转UTF8
2022/04/19 MySQL
二维码条形码生成的JavaScript脚本库
2022/07/07 Javascript