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 相关文章推荐
javascript 终止函数执行操作
Feb 14 Javascript
Node.js文件操作详解
Aug 16 Javascript
jquery 插件实现瀑布流图片展示实例
Apr 03 Javascript
js实现StringBuffer的简单实例
Sep 02 Javascript
深入理解bootstrap框架之第二章整体架构
Oct 09 Javascript
js判断PC端与移动端跳转
Dec 24 Javascript
JS+HTML5 FileReader实现文件上传前本地预览功能
Mar 27 Javascript
基于模板引擎Jade的应用(详解)
Dec 12 Javascript
JavaScript设计模式之工厂模式和抽象工厂模式定义与用法分析
Jul 26 Javascript
在angularJs中进行数据遍历的2种方法
Oct 08 Javascript
Vue使用vue-recoure + http-proxy-middleware + vuex配合promise实现基本的跨域请求封装
Oct 21 Javascript
javascript实现移动端红包雨页面
Jun 23 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
人大复印资料处理程序_输入篇
2006/10/09 PHP
xajax写的留言本
2006/11/25 PHP
PHP 文件上传源码分析(RFC1867)
2009/10/30 PHP
php基于双向循环队列实现历史记录的前进后退等功能
2015/08/08 PHP
解决表单中第一个非隐藏的元素获得焦点的一个方案
2009/10/26 Javascript
JavaScript中this详解
2015/09/01 Javascript
基于JavaScript短信验证码如何实现
2016/01/24 Javascript
浅析Javascript中bind()方法的使用与实现
2016/05/30 Javascript
javascript 使用正则test( )第一次是 true,第二次是false
2017/02/22 Javascript
javascript中json对象json数组json字符串互转及取值方法
2017/04/19 Javascript
全面解析Node.js 8 重要功能和修复
2017/06/02 Javascript
微信小程序 跳转传递数据的实例
2017/07/06 Javascript
ES6模块化的import和export用法方法总结
2017/08/08 Javascript
layer子层给父层页面元素赋值,以达到向父层页面传值的效果实例
2017/09/22 Javascript
Node.js Stream ondata触发时机与顺序的探索
2019/03/08 Javascript
基于vue-cli 路由 实现类似tab切换效果(vue 2.0)
2019/05/08 Javascript
微信小程序实现日期格式化和倒计时
2020/11/01 Javascript
vue动态绘制四分之三圆环图效果
2019/09/03 Javascript
jquery制作的移动端购物车效果完整示例
2020/02/24 jQuery
原生js无缝轮播插件使用详解
2020/03/09 Javascript
在Vue里如何把网页的数据导出到Excel的方法
2020/09/30 Javascript
javascript实现放大镜功能
2020/12/09 Javascript
Python实现股市信息下载的方法
2015/06/15 Python
Python实现PS滤镜的万花筒效果示例
2018/01/23 Python
Windows下的Python 3.6.1的下载与安装图文详解(适合32位和64位)
2018/02/21 Python
使用numpy和PIL进行简单的图像处理方法
2018/07/02 Python
django admin.py 外键,反向查询的实例
2019/07/26 Python
python argparse传入布尔参数false不生效的解决
2020/04/20 Python
pytorch 常用函数 max ,eq说明
2020/06/28 Python
python Autopep8实现按PEP8风格自动排版Python代码
2021/03/02 Python
利用css3-animation实现逐帧动画效果
2016/03/10 HTML / CSS
优瑞自动咖啡机官网:Jura
2018/09/29 全球购物
加拿大大码女装购物网站:Penningtons
2020/12/26 全球购物
求职信模板标准格式范文
2014/02/23 职场文书
小学少先队工作总结2015
2015/05/26 职场文书
使用opencv-python如何打开USB或者笔记本前置摄像头
2022/06/21 Python