node.js中的require使用详解


Posted in Javascript onDecember 15, 2014

代码注释里已经描述的非常的清晰,这里就不多废话了,直接奉上代码:

/*在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.js中require的使用方法了呢,如有疑问,请留言。

Javascript 相关文章推荐
IE6中使用position导致页面变形的解决方案(js代码)
Jan 09 Javascript
jquery中focus()函数实现当对象获得焦点后自动把光标移到内容最后
Sep 29 Javascript
简单的JavaScript互斥锁分享
Feb 02 Javascript
jquery实现鼠标拖拽滑动效果来选择数字的方法
May 04 Javascript
JS实现仿FLASH效果的竖排导航代码
Sep 15 Javascript
全面解析标签页的切换方式
Aug 21 Javascript
Bootstrap源码解读排版(1)
Dec 23 Javascript
纯JS实现的读取excel文件内容功能示例【支持所有浏览器】
Jun 23 Javascript
JS算法题之查找数字在数组中的索引位置
May 15 Javascript
使用Vue CLI创建typescript项目的方法
Aug 09 Javascript
详解vue 组件
Jun 11 Javascript
微信小程序报错: thirdScriptError的错误问题
Jun 19 Javascript
node.js中的favicon.ico请求问题处理
Dec 15 #Javascript
分享20个提升网站界面体验的jQuery插件
Dec 15 #Javascript
分享33个jQuery与CSS3实现的绚丽鼠标悬停效果
Dec 15 #Javascript
60个很实用的jQuery代码开发技巧收集
Dec 15 #Javascript
node中socket.io的事件使用详解
Dec 15 #Javascript
node.js中使用socket.io的方法
Dec 15 #Javascript
Lua表达式和控制结构学习笔记
Dec 15 #Javascript
You might like
5.PHP的其他功能
2006/10/09 PHP
php获得网站访问统计信息类Compete API用法实例
2015/04/02 PHP
typecho插件编写教程(四):插件挂载
2015/05/28 PHP
php函数传值的引用传递注意事项分析
2016/06/25 PHP
php学习笔记之字符串常见操作总结
2019/07/16 PHP
javascript 多级checkbox选择效果
2009/08/20 Javascript
自己实现ajax封装示例分享
2014/04/01 Javascript
Windows系统中安装nodejs图文教程
2015/02/28 NodeJs
浅析BootStrap Treeview的简单使用
2016/10/12 Javascript
在js中做数字字符串补0(js补零)
2017/03/25 Javascript
Angular通过angular-cli来搭建web前端项目的方法
2017/07/27 Javascript
vue.js计算属性computed用法实例分析
2018/07/06 Javascript
vue项目添加多页面配置的步骤详解
2019/05/22 Javascript
vue2.x 通过后端接口代理,获取qq音乐api的数据示例
2019/10/30 Javascript
Python命令行参数解析模块optparse使用实例
2015/04/13 Python
C#返回当前系统所有可用驱动器符号的方法
2015/04/18 Python
Python 实现一个颜色色值转换的小工具
2016/12/06 Python
Django框架之登录后自定义跳转页面的实现方法
2019/07/18 Python
Django自带日志 settings.py文件配置方法
2019/08/30 Python
python如何使用socketserver模块实现并发聊天
2019/12/14 Python
Django 解决model 反向引用中的related_name问题
2020/05/19 Python
利用python如何实现猫捉老鼠小游戏
2020/12/04 Python
selenium+超级鹰实现模拟登录12306
2021/01/24 Python
web页面录屏实现
2019/02/12 HTML / CSS
Born鞋子官网:Born Shoes
2017/04/06 全球购物
悬挂训练绳:TRX
2017/12/14 全球购物
波兰家居和花园家具专家:4Home
2019/05/26 全球购物
全球最大的生存食品、水和装备专用在线市场:BePrepared.com
2020/01/02 全球购物
乌克兰品牌化妆品和香水在线商店:Bomond
2020/01/14 全球购物
恶意软件的定义
2014/11/12 面试题
WSDL的操作类型主要有几种
2013/07/19 面试题
入党积极分子批评与自我批评思想汇报
2014/09/14 职场文书
班主任工作经验交流会总结
2015/11/02 职场文书
观看《筑梦中国》纪录片心得体会
2016/01/18 职场文书
Keras多线程机制与flask多线程冲突的解决方案
2021/05/28 Python
不想升级Win11?教你彻底锁定老版Windows系统的方法(附下载地址)
2022/09/23 数码科技