node.js模块
nodejs中require加载模块式同步的,只有前面的模块加载完毕才会加载后面的模块
从第一个模块开始依次向下执行,一个一个的进行加载
模块分类:
1、内置模块、核心模块、原生模块,都是一个意思,指node.js自带的模块,node.js安装完成之后就已经编译完毕,可以直接加载运行,速度最快
2、第三方模块,从npm上下载的模块,第三方写好之后上传到npm仓库上的模块,我们自己写的模块上传到npm之后也可以成为的第三方模块
3、文件模块,我们自己写的模块,node.js可以加载文件,按照文件后缀来加载,
注意:内置模块在node.js安装之后就已经编译好了,部分模块甚至已经加载好了,所以运行速度最快,第三方模块和文件模块由于还有进行加载编译过程之后才能执行,因此相对较慢
模块加载原理:
模块加载过程:
如果加载的模块路径+名称+文件后缀名齐全,则会将相对路径改为绝对路径直接加载该路径下的对应的文件
如果只有路径文件名,不带文件后缀,查找顺序,依次是index.js->index.json->index.node->index文件夹(认为index是个包package)->index文件夹下的package.json文件,再去package.json中找main对应的app.js主入口文件,再根据index名称依次匹配 .js 、.json、 .node文件,如果没有,则加载失败
所以,require加载模块时要写路径和文件名称以及文件类型后缀,以提高加载效率