Node.js 中的 fs.glob(pattern[, options], callback) 函数

28 Apr 2025 | 4 分钟阅读

Node.js 中的 fs.glob() 函数通常用于在目录中匹配文件模式,这使开发人员能够搜索符合特定模式的文件。尽管 Node.js 缺乏原生的 fs.glob() 函数,但 glob 模块提供了此功能,该功能广泛用于基于模式的文件搜索。该函数接受一个模式和一个选项来控制其行为,并通过回调处理结果。glob() 函数对于查找配置文件、组织构建过程和建立测试用例等任务非常有用。它通过使用动态模式匹配而不是硬编码文件路径来简化文件管理。

语法

它具有以下语法:

参数

  • 模式:一个包含用于匹配文件路径的搜索模式的字符串。它接受通配符,如 (匹配任意数量的字符) 和 (递归匹配目录)。
  • 选项:这是一个可选对象,用于指定搜索行为,例如是否递归、是否区分大小写或仅限于特定文件类型。
  • 回调:一个在模式搜索完成后执行的函数。它接受两个参数:error(用于处理错误)和 matches,这是一个匹配文件路径的数组。

特点

Node.js 中 fs.glob() 函数的几个特性如下:

  1. 异步操作
    它以异步方式运行,允许程序在搜索匹配文件时继续执行。这在 I/O 操作中对于确保应用程序性能至关重要。
  2. 回调函数功能
    它接受一个回调函数,该函数在搜索完成时被调用,并返回结果和任何错误。这种架构改进了错误处理和响应管理。
  3. 同步替代方案
    虽然 glob 模块通常是异步的,但它也包含一个同步变体 (glob.sync()),用于允许或需要阻塞的情况。
  4. 支持否定
    它允许使用 ! 来否定模式,从而将特定匹配项排除在结果之外,从而为匹配条件提供更多控制。
  5. 递归搜索
    在使用通配符时,可以递归搜索子目录,从而允许在目录层次结构中进行深度搜索。
  6. 性能优化
    它利用文件系统缓存和高效的匹配算法来提高性能,尤其是在具有大量文件的目录中。
  7. 错误处理
    回调提供了一种复杂的错误处理机制,允许开发人员温和地处理诸如权限问题或不存在路径之类的情况。

示例

让我们举一个例子来说明 Node.js 中的 fs.glob() 函数。

输出

 
Error: The 'glob' module is required to run this script. Please install it using the following command:
npm install glob   

说明

这个 Node.js 脚本在当前工作目录及其子目录中搜索图像文件,使用 glob 函数匹配提供的文件模式(默认为 .jpg 和 .png 文件)。它首先检索命令行参数中指定的任何搜索模式,或者默认搜索图片文件。该脚本记录当前目录并执行搜索,同时测量执行时间以进行性能分析。如果在文件搜索过程中发生故障,将记录错误消息,并显示成功的匹配项以及它们的总数和文件路径。如果没有找到匹配项,它将通知用户。如果 glob 模块不可用,catch 块将显示一条有用的错误消息,指导用户安装该模块,以便脚本能够正常工作。