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阻止冒泡及jquery阻止事件冒泡示例介绍
Nov 19 Javascript
jquery html动态生成select标签出问题的解决方法
Nov 20 Javascript
快速解决jQuery与其他库冲突的方法介绍
Jan 02 Javascript
jQuery实现级联菜单效果(仿淘宝首页菜单动画)
Apr 10 Javascript
JavaScript实现页面跳转的几种常用方式
Nov 28 Javascript
Sublime Text 3常用插件及安装方法
Dec 16 Javascript
Node.JS文件系统解析实例详解
May 15 Javascript
Vue 子组件与数据传递问题及注意事项
Jul 11 Javascript
Vue.extend 编程式插入组件的实现
Nov 18 Javascript
JavaScript交换两个变量方法实例
Nov 25 Javascript
vue中实现动态生成二维码的方法
Feb 21 Javascript
vue组件中节流函数的失效的原因和解决方法
Dec 02 Vue.js
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代码
2007/03/08 PHP
PHP管理内存函数 memory_get_usage()使用介绍
2012/09/23 PHP
PHP延迟静态绑定示例分享
2014/06/22 PHP
php实现的简易扫雷游戏实例
2015/07/09 PHP
Symfony2安装的方法(2种方法)
2016/02/04 PHP
JQUERY的属性选择符和自定义选择符使用方法(二)
2011/04/07 Javascript
用dtree实现树形菜单 dtree使用说明
2011/10/17 Javascript
jQuery在IE下使用未闭合的xml代码创建元素时的Bug介绍
2012/01/10 Javascript
JavaScript之编码规范 推荐
2012/05/23 Javascript
JavaScript自定义方法实现trim()、Ltrim()、Rtrim()的功能
2013/11/03 Javascript
JavaScript Serializer序列化时间处理示例
2014/07/31 Javascript
javascript 实现map集合
2015/04/03 Javascript
使用JS读取XML文件的方法
2016/11/25 Javascript
JS数组返回去重后数据的方法解析
2017/01/03 Javascript
一道面试题引发的对javascript类型转换的思考
2017/03/06 Javascript
JS中使用gulp实现压缩文件及浏览器热加载功能
2017/07/12 Javascript
Vue实现自定义下拉菜单功能
2018/07/16 Javascript
vue 移动端适配方案详解
2018/11/15 Javascript
详解在网页上通过JS实现文本的语音朗读
2019/03/28 Javascript
微信小程序实现跳转的几种方式总结(推荐)
2019/04/24 Javascript
Vue.set 全局操作简单示例
2019/09/19 Javascript
JavaScript中while循环的基础使用教程
2020/08/11 Javascript
python 判断一个进程是否存在
2009/04/09 Python
Django的数据模型访问多对多键值的方法
2015/07/21 Python
python实现读取excel写入mysql的小工具详解
2017/11/20 Python
python实现数据写入excel表格
2018/03/25 Python
python模块常用用法实例详解
2019/10/17 Python
用html5实现语音搜索框的方法
2014/03/18 HTML / CSS
伊芙丽官方旗舰店:中国淑女一线品牌
2017/12/01 全球购物
意大利奢侈品购物网站:Giglio
2018/01/05 全球购物
华为菲律宾官方网站:HUAWEI Philippines
2021/02/23 全球购物
市场营销专业毕业生自荐信
2013/11/02 职场文书
《夜晚的实验》教学反思
2014/02/19 职场文书
未婚证明书模板
2014/10/08 职场文书
司法局群众路线教育实践活动整改措施思想汇报
2014/10/13 职场文书
python实现局部图像放大
2021/11/17 Python