node.js - 如何使用 Node glob 获取前 X 个文件

标签 node.js glob minimatch

使用node-glob ,是否可以指定一个仅返回前 X 个匹配文件而不是所有匹配的模式?

例如,如果我想要所有 JavaScript 文件,我的模式将是 **/*.js。但是如果我只想要前 5 个 JavaScript 文件怎么办?

我意识到还有其他选项,例如我可以获取生成的文件集数组并将其切片。这里的基本情况使这变得很困难,因此我尝试直接从 glob 模式来完成此任务。

最佳答案

您可以像这样创建自己的 Glob 对象:

var i = 0;
var Glob = require("glob").Glob;
var mg = new Glob(pattern, options, cb);
mg.on("match", function(matched) {
    console.log(matched);
    i++;
    if(i == 5) mg.abort();
});

它是一个事件发射器,因此您可以监听 match 事件,该事件将在找到文件时触发。每次匹配都会增加计数器,如果达到阈值,您可以调用 mg.abort() 来停止搜索。

关于node.js - 如何使用 Node glob 获取前 X 个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22439681/

相关文章:

node.js - 未处理的PromiseRejection警告: Error: error:0906D06C:PEM routines:PEM_read_bio:no start line

node.js - PowerShell 与此 Unix 命令的等效命令

objective-c - 是否可以在 iOS 中 glob 一个目录并让操作系统缓存结果?

node.js - 如何找到我的 mongoDB 的远程 URL 以在我的 Node.js 代码中使用?

android 应用程序 socket.io 未连接到 node.js 服务器,但 android 浏览器建立连接

git - gitignore 的类似正则表达式的 shell glob 模式

bash - 以冒号作为分隔符的通配符/路径名扩展

文本后的 Bash globstar 匹配

node.js - Glob/minimatch : how to gulp. src() 一切,然后排除文件夹但在其中保留一个文件

tfs - 如何在小型匹配模式中同时使用 NOT 和 OR 进行过滤?