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 相关文章推荐
ExtJS 2.0实用简明教程 之Ext类库简介
Apr 29 Javascript
jquery入门——事件机制之事件中的冒泡现象示例解释
Sep 12 Javascript
jQuery插件slick实现响应式移动端幻灯片图片切换特效
Apr 12 Javascript
微信浏览器内置JavaScript对象WeixinJSBridge使用实例
May 25 Javascript
JavaScript实现页面无操作倒计时退出
Oct 22 Javascript
js 能实现监听F5页面刷新子iframe 而父页面不刷新的方法
Nov 09 Javascript
浅谈Vue的基本应用
Dec 27 Javascript
Vue组件之Tooltip的示例代码
Oct 18 Javascript
简述vue状态管理模式之vuex
Aug 29 Javascript
JavaScript实现数字前补“0”的五种方法示例
Jan 03 Javascript
微信小程序自定义联系人弹窗
May 26 Javascript
Vue——解决报错 Computed property "****" was assigned to but it has no setter.
Dec 19 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 Error与Logging函数的深入理解
2013/06/03 PHP
PHP编码规范的深入探讨
2013/06/06 PHP
php常用字符串处理函数实例分析
2014/11/22 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
2015/12/22 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
javascript 中的 delete及delete运算符
2015/11/15 Javascript
从零学习node.js之模块规范(一)
2017/02/21 Javascript
jQuery初级教程之网站品牌列表效果
2017/08/02 jQuery
react中fetch之cors跨域请求的实现方法
2018/03/14 Javascript
Vue中的scoped实现原理及穿透方法
2018/05/15 Javascript
基于Vue2x实现响应式自适应轮播组件插件VueSliderShow功能
2018/05/16 Javascript
JavaScript 2018 中即将迎来的新功能
2018/09/21 Javascript
JavaScript刷新页面的几种方法总结
2019/03/28 Javascript
JS实现页面跳转与刷新的方法汇总
2019/08/30 Javascript
javascript 关于赋值、浅拷贝、深拷贝的个人理解
2019/11/01 Javascript
微信小程序如何通过用户授权获取手机号(getPhoneNumber)
2020/01/21 Javascript
vue中使用vue-print.js实现多页打印
2020/03/05 Javascript
ES6学习教程之Promise用法详解
2020/11/22 Javascript
手动实现vue2.0的双向数据绑定原理详解
2021/02/06 Vue.js
总结Python中逻辑运算符的使用
2015/05/13 Python
python django事务transaction源码分析详解
2017/03/17 Python
Python数据结构之单链表详解
2017/09/12 Python
Python从数据库读取大量数据批量写入文件的方法
2018/12/10 Python
Python3 tkinter 实现文件读取及保存功能
2019/09/12 Python
python 实现检验33品种数据是否是正态分布
2019/12/09 Python
简单了解Django项目应用创建过程
2020/07/06 Python
Pycharm 解决自动格式化冲突的设置操作
2021/01/15 Python
CSS3实例分享--超炫checkbox复选框和radio单选框
2014/09/01 HTML / CSS
字符串str除首尾字符外的其他字符按升序排列
2013/03/08 面试题
一道Delphi上机题
2012/06/04 面试题
自荐信的禁忌和要点
2013/10/15 职场文书
汽车运用工程专业毕业生推荐信
2013/12/25 职场文书
打架检讨书2000字
2014/02/22 职场文书
领导班子奢靡之风查摆问题及整改措施
2014/09/27 职场文书
2014年纳税评估工作总结
2014/12/23 职场文书
毕业生个人总结
2015/02/28 职场文书