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 相关文章推荐
ppk谈JavaScript style属性
Oct 10 Javascript
详解JS 比较两个Json对象的值是否相等的实例
Nov 20 Javascript
jquery增加和删除元素的方法
Jan 14 Javascript
jquery实现表格本地排序的方法
Mar 11 Javascript
javascript实现unicode与ASCII相互转换的方法
Dec 10 Javascript
JavaScript Promise 用法
Jun 14 Javascript
微信小程序 点击控件后选中其它反选实例详解
Feb 21 Javascript
vue中如何实现变量和字符串拼接
Jun 19 Javascript
解决JS内存泄露之js对象和dom对象互相引用问题
Jun 25 Javascript
Vue中使用webpack别名的方法实例详解
Jun 19 Javascript
VUE渲染后端返回含有script标签的html字符串示例
Oct 28 Javascript
vue中实现回车键登录功能
Feb 19 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
基于mysql的论坛(2)
2006/10/09 PHP
用PHP进行MySQL删除记录操作代码
2008/06/07 PHP
PHP计划任务、定时执行任务的实现代码
2011/04/23 PHP
PHP jQuery表单,带验证具体实现方法
2014/02/15 PHP
一个图片地址分解程序(用于PHP小偷程序)
2014/08/23 PHP
Laravel与CI框架中截取字符串函数
2016/05/08 PHP
smarty自定义函数用法示例
2016/05/20 PHP
javascript 硬盘序列号+其它硬件信息
2008/12/23 Javascript
Jquery插件之打造自定义的select标签
2011/11/30 Javascript
JS无限极树形菜单,json格式、数组格式通用示例
2013/07/30 Javascript
详解jquery uploadify 上传文件
2013/11/09 Javascript
jquery 绑定回车动作扑捉回车键触发的事件
2014/03/26 Javascript
json属性名为什么要双引号(个人猜测)
2014/07/31 Javascript
onclick和onblur冲突问题的快速解决方法
2016/04/28 Javascript
js中利用cookie实现记住密码功能
2020/08/20 Javascript
微信小程序链接传参并跳转新页面
2016/11/29 Javascript
Vuex2.0+Vue2.0构建备忘录应用实践
2016/11/30 Javascript
vue+vuex+axio从后台获取数据存入vuex实现组件之间共享数据
2017/04/22 Javascript
JS 仿支付宝input文本输入框放大组件的实例
2017/11/14 Javascript
vue.js路由mode配置之去掉url上默认的#方法
2019/11/01 Javascript
从零学python系列之从文件读取和保存数据
2014/05/23 Python
跟老齐学Python之关于类的初步认识
2014/10/11 Python
python:批量统计xml中各类目标的数量案例
2020/03/10 Python
Python利用matplotlib绘制折线图的新手教程
2020/11/05 Python
意大利文具和办公产品在线商店:Y-Office
2020/02/27 全球购物
个人实用简单的自我评价
2013/10/19 职场文书
《老山界》教学反思
2014/04/08 职场文书
企业宣传标语
2014/06/09 职场文书
党员自评材料范文
2014/12/17 职场文书
青年文明号申报材料
2014/12/23 职场文书
内乡县衙导游词
2015/02/05 职场文书
房地产置业顾问岗位职责
2015/04/11 职场文书
预备党员转正意见
2015/06/01 职场文书
2016年优秀教师先进事迹材料
2016/02/26 职场文书
CSS3 Tab动画实例之背景切换动态效果
2021/08/23 HTML / CSS
Python函数式编程中itertools模块详解
2021/09/15 Python