跳到主要内容

模块

编写稍大一点的程序时一般都会将代码模块化。在 Node.js 中,一般将代码合理拆分到不同的 JavaScript 文件中。为了让这些文件可以相互调用, Node.js 提供了一个简单的模块系统。模块是 Node.js 程序的基本组成部分,文件和模块是一一对应的。换言之,每一个文件就是一个模块,文件路径就是模块名。

在编写模块时, Node.js 提供了3 个很有用的函数或对象: exports 对象、 require() 函数、 module 对象。

exports 对象

exports 对象是当前模块的导出对象,用于导出模块的公有方法和属性。

exports.hello = function () {
console.log('Hello World!');
};

require() 函数

require() 函数用于在当前模块中加载和使用别的模块。它的使用方法是传入一个模块名,返回一个该模块导出的对象或方法。模块名可使用相对路径(以 ./ 开头)或者是绝对路径(以/ 开头)。另外,模块名中的 .js 扩展名可以省略。

  • 以./ 开头的相对路径,表示当前目录
  • 以../ 开头的相对路径,表示父目录
  • 以../../ 开头的相对路径,表示父目录的父目录;多个 ../ 开头的相对路径,目录层次依此类推

module 对象

module 对象相当于当前文件的上下文,用户通过 module 对象可以访问到当前模块的内容。 module 对象一般与 exports 对象联合使用,导出当前模块的内容。