在nodejs中,模块化是指把一个大文件拆分成独立并且相互依赖的多个小模块,将每个js文件被认为单独的一个模块;模块之间是互相不可见的,如果一个模块需要使用另一个模块,则需要使用指定的语法来引入模块,并且只能引入模块所暴露的内容,语法为“const 变量名 = require('模块的路径');”。
本文操作环境:Windows10系统、nodejs 12.19.0版、Dell G3电脑。
概念
背景:在团队协作中,不同成员会独立写自己负责的代码,比如A负责a.js,B 负责b.js. 如果a.js和b.js定义了同一个变量,那么在使用该两个文件时,会导致变量同名而报错的情况。即全局变量污染。解决->nodejs模块化
概念:nodejs中的模块化是指将每个js文件会被认为单独一个的模块。模块之间是互相不可见的。如果一个模块需要使用另一个模块,那么需要通过指定语法来引入要使用的模块,而且只能使用引入模块所暴露的内容。
模块化就是遵守固定的规则,把一个大文件拆分成独立并且相互依赖的多个小模块.通俗来讲就是一个js文件可以使用另一个js文件中的数据.
语法:包括引入和暴露
引入模块
const 变量名 = require('模块的路径');暴露语法(以下语法2选1)
模块内部:
1、多次暴露module.exports.属性名1 = 数据1;module.exports.属性名2= 数据2;2、一次性暴露完module.exports ={ 属性名1:数据1, 属性名:2数据2,}模块路径细节
./:当前目录
../:当前目录的上一级目录
./下一级目录/
引入模块时可以省略.js后缀
引入nodejs本身模块或npm下载的包时,不用写路径,直接写模块名
1、引入上一级目录下的a.js模块let 变量名= require('./../a');2、引入下一级目录routes下的b.js模块let 变量名= require('./routes/b');3、引入npm下载的jQuery模块let 变量名= require('jquery');扩展知识:
模块化有什么好处?
1.可以提高代码的复用性
2.可以提高代码的可维护性
3.可以实现按需加载(学习vue时会十分明显)
模块化的产生也带来了模块作用域,同函数作用域相似,在自定义模块中定义的变量.方法等,只能在当前作用域内被访问,这种访问限制,有效的解决了变量污染的问题.
推荐学习:《nodejs视频教程》
以上就是nodejs中什么是模块化的详细内容,更多请关注本站其它相关文章!