Node.js File模块

File(文件)模块是从文件系统加载的模块。我们可以使用绝对路径,相对路径或 node_modules 目录来引用文件模块。Node支持Windows样式的文件路径。在Windows上,Node允许斜杠和反斜杠字符(/和\)互换使用。

绝对路径

以斜杠(/)开头的模块名称被视为绝对路径。例如: require(“/some/path/foo"); 加载文件模块 foo 使用绝对路径。

示例模块路径在Windows上有效

  1. require("/some/path/foo");
  2. require("C:/some/path/foo");
  3. require("C:\\some\\path\\foo");
  4. require("\\some/path\\foo");

相对路径

以一个或两个点(.或..)开头的模块路径被称为相对路径。它们被认为是与调用require()有关的文件。

以下代码显示了相对模块路径的三个示例。

  • require("./foo"); 从与调用脚本相同的目录加载foo
  • require("../foo");从父目录加载foo
  • require("./sub/foo");从调用脚本的目录的子目录sub加载foo。

注意

如果模块路径不对应于核心模块、绝对路径或相对路径,则Node将开始在 node_modules 文件夹中进行搜索。Node从调用脚本的父目录开始,并附加 /node_modules 。如果找不到模块,则Node沿目录树向上移动一级,追加 /node_modules ,然后再次搜索。

重复此模式,直到找到模块或达到目录结构的根目录。如果Node无法找到匹配项,则抛出一个错误。

文件扩展处理

如果require()没有找到完全匹配,它会尝试添加 .js .json .node 文件扩展名。

  • .js文件视为JavaScript源代码
  • .json文件作为JSON源
  • .node文件被视为编译的附加模块