node.js目录搜索具有名称的文件

时间:2015-11-16 09:46:55

标签: javascript node.js

我需要帮助编写node.js应用程序,该应用程序搜索当前目录下名称包含指定字符串的所有子目录。

例如,用户想要搜索其中包含字符串'test'的所有目录。

我需要使用的js代码是什么?

我尝试使用它:

var walk = function(dir) {
var results = []
var list = fs.readdirSync(dir)
list.forEach(function(file) {
    file = dir + '/' + file
    var stat = fs.statSync(file)
    if (stat && stat.isDirectory()) results = results.concat(walk(file))
    else results.push(file)
})
return results
}

1 个答案:

答案 0 :(得分:2)

查看node-glob

在你的情况下,你可以像这样使用它。此模式将为您提供文件夹中包含至少一次测试名称的所有文件。

var glob = require("glob")

glob("+(test).js", options, function (er, files) {
  // files is an array of filenames.
  // If the `nonull` option is set, and nothing
  // was found, then files is ["**/*.js"]
  // er is an error object or null.
  if (er) {
      // omg something went wrong
      throw new Exception(er);
  }
  var requiredFiles = files.map(function(filename) {
      return require(filename);
  });
  // do something with the required files
});