源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
楼主: ttx9n

[JavaScript] node.js使用require()函数加载模块

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2018-12-25 05:45:19 | 显示全部楼层 |阅读模式
本文通过几个具体实例来分析node.js中使用require()函数来加载模块的方法。非常的详尽,给需要的小伙伴们参考下吧

详细说明均以写在注释之中,这里就不啰嗦了,小伙伴们自己详细看吧,千万别吧注释当成空气了。

复制代码 代码如下:
/*在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()函数的用法了呢,本文是自己的一些理解,如有遗漏,还请大家指正。

回复

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2022-8-16 08:49:29 | 显示全部楼层
好东西一定要看看!
回复 支持 反对

使用道具 举报

13

主题

2万

回帖

85

积分

注册会员

Rank: 2

积分
85
发表于 2022-8-22 15:13:33 | 显示全部楼层
了乐趣了去了去了去了去了
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2022-9-18 13:39:58 | 显示全部楼层
笑纳了老板
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

100

积分

注册会员

Rank: 2

积分
100
发表于 2022-10-28 23:28:59 | 显示全部楼层
天天源码社区www.tiantianym.com
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-4-20 14:51:19 | 显示全部楼层
的沙发水电费水电费
回复 支持 反对

使用道具 举报

4

主题

1万

回帖

60

积分

注册会员

Rank: 2

积分
60
发表于 2023-6-24 03:51:13 | 显示全部楼层
这个源码还可以
回复 支持 反对

使用道具 举报

1

主题

1万

回帖

51

积分

注册会员

Rank: 2

积分
51
发表于 2023-9-24 22:53:43 | 显示全部楼层
搞个免费的用用
回复 支持 反对

使用道具 举报

2

主题

1万

回帖

146

积分

注册会员

Rank: 2

积分
146
发表于 2023-11-14 14:07:35 | 显示全部楼层
收下来看看怎么样
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2024-4-26 20:16:35 | 显示全部楼层
谢谢楼主分享
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2025-1-20 12:08 , Processed in 0.145184 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表