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的三级展开列表
Apr 26 Javascript
IE的有条件注释判定IE版本详解(附实例代码)
Jan 04 Javascript
JQuery.closest(),parent(),parents()寻找父结点
Feb 17 Javascript
精心挑选的15款优秀jQuery 本特效插件和教程
Aug 06 Javascript
jquery验证表单中的单选与多选实例
Aug 18 Javascript
JS实现往下不断流动网页背景的方法
Feb 27 Javascript
微信小程序 简单DEMO布局,逻辑,样式的练习
Nov 30 Javascript
JavaScript数据结构之双向链表定义与使用方法示例
Oct 27 Javascript
vue2.0的虚拟DOM渲染思路分析
Aug 09 Javascript
js的各种数据类型判断的介绍
Jan 19 Javascript
详解小程序循环require之坑
Mar 08 Javascript
vue v-for 点击当前行,获取当前行数据及event当前事件对象的操作
Sep 10 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
德生PL450的电路分析和低放电路的改进办法
2021/03/02 无线电
一段php加密解密的代码
2007/07/16 PHP
centos 7.2下搭建LNMP环境教程
2016/11/20 PHP
Zend Framework处理Json数据方法详解
2016/12/09 PHP
网页上的Javascript编辑器和代码格式化
2010/04/25 Javascript
fancybox modal的完美解决(右上的X)
2012/10/30 Javascript
onbeforeunload与onunload事件异同点总结
2013/06/24 Javascript
javascript中的parseInt和parseFloat区别
2013/07/12 Javascript
js获得参数的getParameter使用示例
2014/02/26 Javascript
jQuery源码分析之sizzle选择器详解
2017/02/13 Javascript
React Native AsyncStorage本地存储工具类
2017/10/24 Javascript
使用JavaScript和MQTT开发物联网应用示例解析
2020/08/07 Javascript
python根据距离和时长计算配速示例
2014/02/16 Python
详解Python3中的Sequence type的使用
2015/08/01 Python
详解K-means算法在Python中的实现
2017/12/05 Python
python代码实现ID3决策树算法
2017/12/20 Python
Python 函数基础知识汇总
2018/03/09 Python
python中itertools模块zip_longest函数详解
2018/06/12 Python
浅谈python在提示符下使用open打开文件失败的原因及解决方法
2018/11/30 Python
python调用matlab的m自定义函数方法
2019/02/18 Python
Django 响应数据response的返回源码详解
2019/08/06 Python
浅谈tensorflow 中的图片读取和裁剪方式
2020/06/30 Python
Python内存泄漏和内存溢出的解决方案
2020/09/26 Python
python 利用matplotlib在3D空间中绘制平面的案例
2021/02/06 Python
Python 实现劳拉游戏的实例代码(四连环、重力四子棋)
2021/03/03 Python
使用css3 属性如何丰富图片样式(圆角 阴影 渐变)
2012/11/22 HTML / CSS
意大利领先的奢侈品在线时装零售商:MCLABELS
2020/10/13 全球购物
什么是属性访问器
2015/10/26 面试题
大三学习计划书范文
2014/05/02 职场文书
甘南现象心得体会
2014/09/11 职场文书
平凡的世界读书笔记
2015/06/25 职场文书
重阳节简报
2015/07/20 职场文书
启迪人心的励志语录:脾气永远不要大于本事
2020/01/02 职场文书
OpenCV-Python使用cv2实现傅里叶变换
2021/06/09 Python
一文弄懂MySQL中redo log与binlog的区别
2022/02/15 MySQL
Android开发实现极为简单的QQ登录页面
2022/04/24 Java/Android