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 版
Mar 24 Javascript
JQuery 初体验(建议学习jquery)
Apr 25 Javascript
火狐下table中创建form导致两个table之间出现空白
Sep 02 Javascript
JS获取图片lowsrc属性的方法
Apr 01 Javascript
JavaScript中利用各种循环进行遍历的方式总结
Nov 10 Javascript
基于javascript实现仿百度输入框自动匹配功能
Jan 03 Javascript
基于javascript实现随机颜色变化效果
Jan 14 Javascript
jquery ajax结合thinkphp的getjson实现跨域的方法
Jun 06 Javascript
微信小程序 开发工具快捷键整理
Oct 31 Javascript
jquery实现放大镜简洁代码(推荐)
Jun 08 jQuery
Vue实现6位数密码效果
Aug 18 Javascript
javascript 使用sleep函数的常见方法详解
Apr 26 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
教你IIS6的PHP最佳配置方法
2006/09/05 PHP
PHP 错误之引号中使用变量
2009/05/04 PHP
php预定义变量使用帮助(带实例)
2013/10/30 PHP
wordpress自定义url参数实现路由功能的代码示例
2013/11/28 PHP
php生成图片验证码的实例讲解
2015/08/03 PHP
四个PHP非常实用的功能
2015/09/29 PHP
详解PHP处理字符串类似indexof的方法函数
2017/06/11 PHP
JavaScript 动态改变图片大小
2009/06/11 Javascript
Javascript冒泡排序算法详解
2014/12/03 Javascript
对JavaScript客户端应用编程的一些建议
2015/06/24 Javascript
深入浅析Extjs中store分组功能的使用方法
2016/04/20 Javascript
深入对Vue.js $watch方法的理解
2017/03/20 Javascript
windows下vue-cli及webpack搭建安装环境
2017/04/25 Javascript
详解Angular2响应式表单
2017/06/14 Javascript
vue实现仿淘宝结账页面实例代码
2017/11/08 Javascript
JS实现的数组去除重复数据算法小结
2017/11/17 Javascript
基于nodejs res.end和res.send的区别
2018/05/14 NodeJs
vue使用pdfjs显示PDF可复制的实现方法
2018/12/14 Javascript
[41:56]Spirit vs Liquid Supermajor小组赛A组 BO3 第一场 6.2
2018/06/03 DOTA
Python简单实现安全开关文件的两种方式
2016/09/19 Python
PyCharm安装第三方库如Requests的图文教程
2018/05/18 Python
Python守护进程实现过程详解
2020/02/10 Python
Python json读写方式和字典相互转化
2020/04/18 Python
Python日志:自定义输出字段 json格式输出方式
2020/04/27 Python
Python实现疫情通定时自动填写功能(附代码)
2020/05/27 Python
CSS3对图片照片进行边缘模糊处理的实现
2018/08/08 HTML / CSS
CSS3打造磨砂玻璃背景效果
2016/09/28 HTML / CSS
如何写出好的Java代码
2014/04/25 面试题
Ruby中的保护方法和私有方法与一般面向对象程序设计语言的一样吗
2013/05/01 面试题
办公室秘书岗位职责范本
2014/02/11 职场文书
海飞丝广告词
2014/03/20 职场文书
航海技术专业毕业生求职信
2014/04/06 职场文书
无私奉献演讲稿
2014/09/04 职场文书
国庆节促销广告语2014
2014/09/19 职场文书
python3 实现mysql数据库连接池的示例代码
2021/04/17 Python
MySQL 数据类型选择原则
2021/05/27 MySQL