node.js使用require()函数加载模块


Posted in Javascript onNovember 26, 2014

详细说明均以写在注释之中,这里就不??铝耍?』锇槊亲约合晗缚窗桑??虮鸢勺⑹偷背煽掌?恕?/p>

/*在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中require()函数的用法了呢,本文是自己的一些理解,如有遗漏,还请大家指正。

Javascript 相关文章推荐
jquery load事件(callback/data)使用方法及注意事项
Feb 06 Javascript
当jQuery1.7遇上focus方法的问题
Jan 26 Javascript
基于jQuery实现的图片切换焦点图整理
Dec 07 Javascript
Bootstrap布局方式详解
May 27 Javascript
js事件驱动机制 浏览器兼容处理方法
Jul 23 Javascript
pc加载更多功能和移动端下拉刷新加载数据
Nov 07 Javascript
解析JavaScript实现DDoS攻击原理与保护措施
Dec 26 Javascript
Angular.JS利用ng-disabled属性和ng-model实现禁用button效果
Apr 05 Javascript
jQuery树插件zTree使用方法详解
May 02 jQuery
vue中遇到的坑之变化检测问题(数组相关)
Oct 13 Javascript
javascript定时器的简单应用示例【控制方块移动】
Jun 17 Javascript
Vue data的数据响应式到底是如何实现的
Feb 11 Javascript
javascript中setTimeout和setInterval的unref()和ref()用法示例
Nov 26 #Javascript
浅谈jQuery中对象遍历.eq().first().last().slice()方法
Nov 26 #Javascript
javascript 原型链维护和继承详解
Nov 26 #Javascript
jquery提示效果实例分析
Nov 25 #Javascript
jQuery操作cookie方法实例教程
Nov 25 #Javascript
JavaScript常用验证函数实例汇总
Nov 25 #Javascript
JavaScript导出Excel实例详解
Nov 25 #Javascript
You might like
php实现文件下载代码分享
2014/08/19 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
2021/03/09 PHP
JavaScript版代码高亮
2006/06/26 Javascript
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
2010/04/01 Javascript
Javascript中各种trim的实现详细解析
2013/12/10 Javascript
解决jquery操作checkbox火狐下第二次无法勾选问题
2014/02/10 Javascript
js实现动画特效的文字链接鼠标悬停提示的方法
2015/03/02 Javascript
Nodejs实现批量下载妹纸图
2015/05/28 NodeJs
详解JavaScript编程中的数组结构
2015/10/24 Javascript
超漂亮的jQuery图片轮播特效
2015/11/24 Javascript
jQuery抛物线运动实现方法(附完整demo源码下载)
2016/01/08 Javascript
微信小程序使用第三方库Underscore.js步骤详解
2016/09/27 Javascript
第一次接触神奇的前端框架vue.js
2016/12/01 Javascript
jquery——九宫格大转盘抽奖实例
2017/01/16 Javascript
js实现简单的网页换肤效果
2017/01/18 Javascript
javascript使用btoa和atob来进行Base64转码和解码
2017/03/20 Javascript
vue-cli3脚手架的配置及使用教程
2018/08/28 Javascript
vue-router之实现导航切换过渡动画效果
2019/10/31 Javascript
vue 实现 rem 布局或vw 布局的方法
2019/11/13 Javascript
谈谈JavaScript中的函数
2020/09/08 Javascript
[48:39]Ti4主赛事胜者组第一天 EG vs NEWBEE 2
2014/07/19 DOTA
python运行其他程序的实现方法
2017/07/14 Python
Python并发之多进程的方法实例代码
2018/08/15 Python
tensorflow如何批量读取图片
2019/08/29 Python
Python3将ipa包中的文件按大小排序
2020/04/17 Python
留学自荐信的技巧
2013/10/17 职场文书
分家协议书
2014/04/21 职场文书
银行进社区活动总结
2014/07/07 职场文书
2015年社区宣传工作总结
2015/05/20 职场文书
泰坦尼克号观后感
2015/06/04 职场文书
经典哲理警句:志不真则心不热,心不热则功不贤
2019/11/14 职场文书
vue中data改变后让视图同步更新的方法
2021/03/29 Vue.js
使用vue-element-admin框架从后端动态获取菜单功能的实现
2021/04/29 Vue.js
JS中一些高效的魔法运算符总结
2021/05/06 Javascript
Python 数据可视化神器Pyecharts绘制图像练习
2022/02/28 Python