概述
为了让 Node.js 的文件可以相互调用,Node.js 提供了一个简单的模块系统。
模块是 Node.js 应用程序的基本组成部分,文件和模块是一一对应的。换言之,一个 Node.js 文件就是一个模块,这个文件可能是 JavaScript 代码、JSON 或者编译过的C/C++ 扩展。
创建模块
创建一个模块非常简单,举个例子。
创建一个叫 hello 的模块,只需要创建 hello.js
文件,代码如下:
|
|
这样,其他文件包含这个文件时,就可以访问到 world
这个函数了。
如果我们希望直接封装一个对象,可以直接给 module.exports
这个变量赋值。比如:
|
|
js
模块的编译在编译的过程中,Node 对获取的 javascript 文件内容进行了头尾包装,将文件内容包装在一个 function 中:
|
|
文件模块与原生模块
核心(原生)模块是指那些随 Node.js 安装而安装的模块,这些模块在 Node.js 源代码编译时被编译成二进制执行文件。相比文件模块,核心(原生)模块的加载速度更快。
可以参考,其他人整理的原生模块列表。
文件模块的文件名有三种表示方式:/
绝对路径、./
调用 require
函数文件的位置、直接使用模块名会寻找 node_module
与核心模块。
查找的优先级顺序如下图所示: