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 相关文章推荐
js 获取中文拼音,Select自动匹配字母获取值的代码
Sep 23 Javascript
JQuery学习笔记 nt-child的使用
Jan 17 Javascript
网页整体变灰白色(兼容各浏览器)实例
Apr 21 Javascript
动态创建script在IE中缓存js文件时导致编码的解决方法
May 04 Javascript
js添加select下默认的option的value和text的方法
Oct 19 Javascript
原生js与jQuery实现简单的tab切换特效对比
Jul 30 Javascript
Android中Okhttp3实现上传多张图片同时传递参数
Feb 18 Javascript
vue实现app页面切换动画效果实例
May 23 Javascript
浅谈Vue.js中如何实现自定义下拉菜单指令
Jan 06 Javascript
一次微信小程序内地图的使用实战记录
Sep 09 Javascript
layui 富文本编辑器和textarea值的相互传递方法
Sep 18 Javascript
基于Vue el-autocomplete 实现类似百度搜索框功能
Oct 25 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
将RTF格式的文件转成HTML并在网页中显示的代码
2006/10/09 PHP
php下载文件源代码(强制任意文件格式下载)
2014/05/09 PHP
Codeigniter+PHPExcel实现导出数据到Excel文件
2014/06/12 PHP
PHP实现从远程下载文件的方法
2015/03/12 PHP
php curl中gzip的压缩性能测试实例分析
2016/11/08 PHP
浅谈Cookie的生命周期问题
2016/08/02 Javascript
巧用jQuery选择器提高写表单效率的方法
2016/08/19 Javascript
jQuery实现大图轮播
2017/02/13 Javascript
Vue ElementUI之Form表单验证遇到的问题
2017/08/21 Javascript
js 图片转base64的方式(两种)
2018/04/24 Javascript
微信小程序登录session的使用
2019/03/17 Javascript
vue+element+Java实现批量删除功能
2019/04/08 Javascript
详解elementui之el-image-viewer(图片查看器)
2019/08/30 Javascript
原生js实现的金山打字小游戏(实例代码详解)
2020/03/16 Javascript
Vue.js中Line第三方登录api的实现代码
2020/06/29 Javascript
JS实现简易贪吃蛇游戏
2020/08/24 Javascript
JavaScript本地储存:localStorage、sessionStorage、cookie的使用
2020/10/13 Javascript
[04:19]完美世界携手游戏风云打造 卡尔工作室模型介绍篇
2013/04/24 DOTA
使用Python设置tmpfs来加速项目的教程
2015/04/17 Python
python实现自动登录人人网并采集信息的方法
2015/06/28 Python
python互斥锁、加锁、同步机制、异步通信知识总结
2018/02/11 Python
Django 限制访问频率的思路详解
2019/12/24 Python
基于打开pycharm有带图片md文件卡死问题的解决
2020/04/24 Python
Scrapy中如何向Spider传入参数的方法实现
2020/09/28 Python
UI自动化定位常用实现方法代码示例
2020/10/27 Python
Python调用飞书发送消息的示例
2020/11/10 Python
英国领先的大码时装品牌之一:Elvi
2018/08/26 全球购物
经典c++面试题四
2015/05/14 面试题
Ajax的优点和缺点
2014/11/21 面试题
求职信的正确写法
2014/07/10 职场文书
迟到检讨书2000字(精选篇)
2014/10/07 职场文书
初中家长评语和期望
2014/12/26 职场文书
超市采购员岗位职责
2015/04/07 职场文书
2016年优秀少先队辅导员事迹材料
2016/02/26 职场文书
2016年教师党员承诺书范文
2016/03/24 职场文书
MongoDB 常用的crud操作语句
2021/06/20 MongoDB