ZCQ
日期:2021年1月28日
模块化好处:
便于管理维护
方便以后代码借用
模块化:
在Node中,一个js文件就是一个模块
每一个js文件中的代码都是独立运行在该模块中,而不是全局作用域
一个模块中的变量和函数不能直接被另一个模块引用
要想引用,必须导出和导入
引入模块
例如:
在模块hello2中引入模块hello1
示例一:
sayName模块(被引出):
//sayName:被引出的模块
//被引用的模块,需要将每个被引用的属性
//或函数通过module.exports或exports导出
module.exports.a1="孙悟空";
exports.a2="猪八戒";
exports.sayName=function()
{
console.log("我是孙悟空");
}
hello(引入sayName模块):
//引入sayName模块
var s1=require("./sayName")
//通过require函数,告诉其引入模块的地址,必须以./或../开头
//require函数返回对模块的引用,必须将其赋给某个变量
console.log(s1);//将模块整个输出
console.log(s1.a1);//输出模块的某个属性
console.log(s1.a2);
s1.sayName();//调用函数
示例二:
sayName模块(被引出):
// 通过module.exports={}将需要被导出的属性或函数作为一个对象被导出
module.exports={
name:"美猴王",
age:1223,
callname:function()
{
console.log("我是美猴王");
}
}
hello(引入sayName模块):
//引入sayName模块
var s1=require("./sayName")
console.log(s1);//将模块整个输出
console.log(s1.name);//输出模块的某个属性
console.log(s1.age);
s1.callname();//调用函数
注:以上模块指文件模块,即用户自定义模块
而核心模块的引用无需对require函数输入路径
如:
var fs = require("fs");
在node中有一个全局对象,类似于网页中的window
在全局中创建的变量都会作为global的属性保存
在全局中创建的函数都会作为global的方法保存
当node在执行模块中的代码时,它会首先在代码的最顶部,添加如下代码:
function (exports, require , module , __filename, __dirname){
}
实际上,模块的代码都是包装在一个函数中执行的,并且在函数执行时,同时传递进5个实参:
exports:该对象用来将变量或函数暴露到函数外部
require:用来引入外部模块
module:代表模块本身,exports就是module的属性
filename:当前模块的完整路径
dirname:当前模块所在文件夹的完整路径
Node.js模块化详解与实践
本文详细介绍了Node.js中的模块化概念,包括模块的独立运行、导出与导入方式,以及如何通过`require`函数引入模块。示例展示了如何在模块间共享变量和函数,强调了`module.exports`和`exports`的区别。此外,还提到了Node.js全局对象和模块执行环境的特点。
1008

被折叠的 条评论
为什么被折叠?



