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从头学起第二讲
Jul 04 Javascript
jQuery函数的等价原生函数代码示例
May 27 Javascript
js修改原型的属性使用介绍
Jan 26 Javascript
jQuery学习笔记之基础中的基础
Jan 19 Javascript
Jquery左右滑动插件之实现超级炫酷动画效果附源码下载
Dec 02 Javascript
Jquery和JS获取ul中li标签的实现方法
Jun 02 Javascript
JS去除空格和换行的正则表达式(推荐)
Jun 14 Javascript
微信小程序 生命周期函数详解
May 24 Javascript
JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能
Feb 06 Javascript
webpack公共组件引用路径简化小技巧
Jun 15 Javascript
Layui数据表格 前后端json数据接收的方法
Sep 19 Javascript
JavaScript接口实现方法实例分析
May 16 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
防止MySQL注入或HTML表单滥用的PHP程序
2009/01/21 PHP
用PHP将数据导入到Foxmail的实现代码
2010/09/05 PHP
Ajax实时验证用户名/邮箱等是否已经存在的代码打包
2011/12/01 PHP
小谈php正则提取图片地址
2014/03/27 PHP
PHP 文件写入和读取操作实例详解【必看篇】
2019/11/04 PHP
javascript得到XML某节点的子节点个数的脚本
2008/10/11 Javascript
Javascript 的addEventListener()及attachEvent()区别分析
2009/05/21 Javascript
jqPlot 图表中文API使用文档及源码和在线示例
2012/02/07 Javascript
jQueryUI写一个调整分类的拖放效果实现代码
2012/05/10 Javascript
jquery判断浏览器类型的代码
2012/11/05 Javascript
jquery教程ajax请求json数据示例
2014/01/13 Javascript
JS中的forEach、$.each、map方法推荐
2016/04/05 Javascript
微信小程序 icon组件详细及实例代码
2016/10/25 Javascript
react native带索引的城市列表组件的实例代码
2017/08/08 Javascript
Vue2.0实现调用摄像头进行拍照功能 exif.js实现图片上传功能
2018/04/28 Javascript
浅谈Vue路由快照实现思路及其问题
2018/06/07 Javascript
js实现全选反选不选功能代码详解
2019/04/24 Javascript
微信小程序实现多选框功能的实例代码
2020/06/24 Javascript
Vue 列表页带参数进详情页的操作(router-link)
2020/11/13 Javascript
[04:00]黄浦江畔,再会英雄——完美世界DOTA2 TI9应援视频
2019/07/31 DOTA
PHP webshell检查工具 python实现代码
2009/09/15 Python
python共享引用(多个变量引用)示例代码
2013/12/04 Python
使用Python FastAPI构建Web服务的实现
2020/06/08 Python
python根据字典的键来删除元素的方法
2020/08/16 Python
纯CSS3实现3D旋转书本效果
2016/03/21 HTML / CSS
浅谈css3中的前缀
2016/07/20 HTML / CSS
H5 canvas中width、height和style的宽高区别详解
2018/11/02 HTML / CSS
html5 Web SQL Database 之事务处理函数transaction与executeSQL解析
2013/11/07 HTML / CSS
英国领先的珍珠首饰品牌:Orchira
2016/09/11 全球购物
斯德哥尔摩通票:Stockholm Pass
2018/01/09 全球购物
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
2014/07/27 面试题
卫生巾广告词
2014/03/18 职场文书
税务职业生涯规划书范文
2014/09/16 职场文书
信息合作协议书
2014/10/09 职场文书
走群众路线学习心得体会
2014/10/31 职场文书
导游词之金鞭溪风景区
2019/09/12 职场文书